use crate::constants::{
DEFAULT_BAG_PATH, DEFAULT_LOAD_REPORT_PATH, DEFAULT_ORCHESTRATION_CONFIG_PATH,
DEFAULT_RESOURCE_REPORT_PATH, DEFAULT_RUNTIME_REPORT_PATH, DEFAULT_STATUS_REPORT_PATH,
};
pub fn print_usage(scope: Option<&str>) {
match scope {
Some("node") => {
println!("node commands:");
println!(" node list [--mode <embedded|daemon>] [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--json] [--refresh-demo]");
println!(
" node info <name> [--mode <embedded|daemon>] [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--json] [--refresh-demo]"
);
}
Some("topic") => {
println!("topic commands:");
println!(" topic list [--mode <embedded|daemon>] [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--json] [--refresh-demo]");
println!(
" topic info <name> [--mode <embedded|daemon>] [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--json] [--refresh-demo]"
);
println!(" topic hz <name> [--input <bag-path>] [--json]");
println!(" topic echo <name> [--input <bag-path>] [--limit <n>] [--json]");
}
Some("status") => {
println!("status commands:");
println!(
" status serve [--bind <addr>] [--source <demo|file>] [--report <path>] [--once] [--json]"
);
}
Some("mission") => {
println!("mission commands:");
println!(" mission list [--mode <embedded|daemon>] [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--json] [--refresh-demo]");
println!(
" mission watch [name] [--mode <embedded|daemon>] [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--iterations <n>] [--interval-ms <ms>] [--json] [--refresh-demo]"
);
}
Some("action") => {
println!("action commands:");
println!(" action list [--mode <embedded|daemon>] [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--json] [--refresh-demo]");
println!(
" action info <name> [--mode <embedded|daemon>] [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--json] [--refresh-demo]"
);
println!(
" action watch [name] [--mode <embedded|daemon>] [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--iterations <n>] [--interval-ms <ms>] [--json] [--refresh-demo]"
);
}
Some("plugin") => {
println!("plugin commands:");
println!(
" plugin list [--mode <embedded|daemon>] [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--loaded] [--json] [--refresh-demo]"
);
}
Some("health") => {
println!("health command:");
println!(
" health [--mode <embedded|daemon>] [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--json] [--refresh-demo]"
);
}
Some("graph") => {
println!("graph command:");
println!(
" graph [--mode <embedded|daemon>] [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--json] [--refresh-demo]"
);
}
Some("obs") => {
println!("obs commands:");
println!(
" obs export [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--format <prometheus|otel>] [--alert-template <none|basic>] [--json] [--refresh-demo]"
);
}
Some("orchestrate") => {
println!("orchestrate commands:");
println!(" orchestrate init [--output <path>] [--json]");
println!(
" orchestrate validate [--file <path>] [--profile <name>] [--overlay <file1,file2>] [--json]"
);
println!(
" orchestrate plan [--file <path>] [--profile <name>] [--overlay <file1,file2>] [--task <name>] [--group <name>] [--json]"
);
println!(
" orchestrate run [--file <path>] [--profile <name>] [--overlay <file1,file2>] [--task <name>] [--group <name>] [--max-parallel <n>] [--dry-run] [--continue-on-error] [--json]"
);
println!(
" orchestrate up [--file <path>] [--profile <name>] [--overlay <file1,file2>] [--task <name>] [--group <name>] [--state-file <path>] [--json]"
);
println!(
" orchestrate down [--task <name>] [--group <name>] [--state-file <path>] [--json]"
);
println!(" orchestrate status [--state-file <path>] [--prune] [--json]");
}
Some("ops") => {
println!("ops commands:");
println!(
" ops snapshot [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--policy <path>] [--topic-warn-utilization <pct>] [--topic-critical-utilization <pct>] [--json] [--refresh-demo]"
);
println!(
" ops console [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--output <path>] [--policy <path>] [--topic-warn-utilization <pct>] [--topic-critical-utilization <pct>] [--json] [--refresh-demo]"
);
println!(
" ops diff [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--baseline-report <path> | --baseline-endpoint <addr>] [--baseline-timeout-ms <ms>] [--output <path>] [--policy <path>] [--topic-warn-utilization <pct>] [--topic-critical-utilization <pct>] [--json] [--refresh-demo]"
);
println!(
" ops fleet [--reports <p1,p2,...>] [--endpoints <e1,e2,...>] [--baseline-reports <p1,p2,...>] [--baseline-endpoints <e1,e2,...>] [--timeout-ms <ms>] [--baseline-timeout-ms <ms>] [--output <path>] [--policy <path>] [--json]"
);
println!(
" ops profile [--reports <p1,p2,...>] [--endpoints <e1,e2,...>] [--baseline-reports <p1,p2,...>] [--baseline-endpoints <e1,e2,...>] [--input-bag <bag-path>] [--obs-format <prometheus|otel|both>] [--profile-template <perf-regression|task-stall|plugin-anomaly|queue-backlog>] [--output <path>] [--policy <path>] [--json]"
);
println!(" ops replay [--input <bag-path>] [--output <path>] [--json]");
}
Some("sdk") => {
println!("sdk commands:");
println!(
" sdk init <project-name> [--template <local|network|mission|service|action>] [--output <dir>] [--json]"
);
println!(
" sdk migrate-batch [--projects <dir1,dir2,...>] [--projects-file <path>] [--scan-root <dir>] [--filter-schema <n>] [--filter-template <name>] [--precheck-only] [--target-schema <n>] [--severity-map <path>] [--dry-run] [--fail-fast] [--output <path>] [--json]"
);
println!(
" sdk migrate-report [--batch-report <path>] [--severity-map <path>] [--json]"
);
println!(
" sdk retry-failed --batch-report <path> [--target-schema <n>] [--dry-run] [--fail-fast] [--output <path>] [--json]"
);
println!(
" sdk migrate <project-dir> [--project <dir>] [--target-schema <n>] [--dry-run] [--json]"
);
println!(" sdk rollback <project-dir> [--project <dir>] [--backup <path>] [--json]");
println!(
" sdk rollback-batch [--projects <dir1,dir2,...>] [--projects-file <path>] [--scan-root <dir>] [--batch-report <path>] [--fail-fast] [--output <path>] [--json]"
);
}
Some("bag") => {
println!("bag commands:");
println!(
" bag record [--output <path>] [--count <n>] [--topic <name>] [--domain <local|network>]"
);
println!(" bag play [--input <path>] [--speed <instant|realtime|factor>] [--json]");
}
_ => {
println!("robotrt-cli commands:");
println!(" help [command]");
println!(" middleware load [--report <path>] [--json] [--refresh-demo]");
println!(" middleware capture-demo [--report <path>]");
println!(" runtime load [--report <path>] [--json]");
println!(" node list [--mode <embedded|daemon>] [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--json] [--refresh-demo]");
println!(
" node info <name> [--mode <embedded|daemon>] [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--json] [--refresh-demo]"
);
println!(" topic list [--mode <embedded|daemon>] [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--json] [--refresh-demo]");
println!(
" topic info <name> [--mode <embedded|daemon>] [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--json] [--refresh-demo]"
);
println!(" topic hz <name> [--input <bag-path>] [--json]");
println!(" topic echo <name> [--input <bag-path>] [--limit <n>] [--json]");
println!(" service list [--mode <embedded|daemon>] [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--json] [--refresh-demo]");
println!(" action list [--mode <embedded|daemon>] [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--json] [--refresh-demo]");
println!(
" action info <name> [--mode <embedded|daemon>] [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--json] [--refresh-demo]"
);
println!(
" action watch [name] [--mode <embedded|daemon>] [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--iterations <n>] [--interval-ms <ms>] [--json] [--refresh-demo]"
);
println!(" mission list [--mode <embedded|daemon>] [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--json] [--refresh-demo]");
println!(
" mission watch [name] [--mode <embedded|daemon>] [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--iterations <n>] [--interval-ms <ms>] [--json] [--refresh-demo]"
);
println!(
" status serve [--bind <addr>] [--source <demo|file>] [--report <path>] [--once] [--json]"
);
println!(
" health [--mode <embedded|daemon>] [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--json] [--refresh-demo]"
);
println!(
" graph [--mode <embedded|daemon>] [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--json] [--refresh-demo]"
);
println!(
" plugin list [--mode <embedded|daemon>] [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--loaded] [--json] [--refresh-demo]"
);
println!(
" obs export [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--format <prometheus|otel>] [--alert-template <none|basic>] [--json] [--refresh-demo]"
);
println!(" orchestrate init [--output <path>] [--json]");
println!(
" orchestrate validate [--file <path>] [--profile <name>] [--overlay <file1,file2>] [--json]"
);
println!(
" orchestrate plan [--file <path>] [--profile <name>] [--overlay <file1,file2>] [--task <name>] [--group <name>] [--json]"
);
println!(
" orchestrate run [--file <path>] [--profile <name>] [--overlay <file1,file2>] [--task <name>] [--group <name>] [--max-parallel <n>] [--dry-run] [--continue-on-error] [--json]"
);
println!(
" orchestrate up [--file <path>] [--profile <name>] [--overlay <file1,file2>] [--task <name>] [--group <name>] [--state-file <path>] [--json]"
);
println!(
" orchestrate down [--task <name>] [--group <name>] [--state-file <path>] [--json]"
);
println!(" orchestrate status [--state-file <path>] [--prune] [--json]");
println!(
" ops snapshot [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--policy <path>] [--topic-warn-utilization <pct>] [--topic-critical-utilization <pct>] [--json] [--refresh-demo]"
);
println!(
" ops console [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--output <path>] [--policy <path>] [--topic-warn-utilization <pct>] [--topic-critical-utilization <pct>] [--json] [--refresh-demo]"
);
println!(
" ops diff [--report <path>] [--endpoint <addr>] [--timeout-ms <ms>] [--baseline-report <path> | --baseline-endpoint <addr>] [--baseline-timeout-ms <ms>] [--output <path>] [--policy <path>] [--topic-warn-utilization <pct>] [--topic-critical-utilization <pct>] [--json] [--refresh-demo]"
);
println!(
" ops fleet [--reports <p1,p2,...>] [--endpoints <e1,e2,...>] [--baseline-reports <p1,p2,...>] [--baseline-endpoints <e1,e2,...>] [--timeout-ms <ms>] [--baseline-timeout-ms <ms>] [--output <path>] [--policy <path>] [--json]"
);
println!(
" ops profile [--reports <p1,p2,...>] [--endpoints <e1,e2,...>] [--baseline-reports <p1,p2,...>] [--baseline-endpoints <e1,e2,...>] [--input-bag <bag-path>] [--obs-format <prometheus|otel|both>] [--profile-template <perf-regression|task-stall|plugin-anomaly|queue-backlog>] [--output <path>] [--policy <path>] [--json]"
);
println!(" ops replay [--input <bag-path>] [--output <path>] [--json]");
println!(
" sdk init <project-name> [--template <local|network|mission|service|action>] [--output <dir>] [--json]"
);
println!(
" sdk migrate-batch [--projects <dir1,dir2,...>] [--projects-file <path>] [--scan-root <dir>] [--filter-schema <n>] [--filter-template <name>] [--precheck-only] [--target-schema <n>] [--severity-map <path>] [--dry-run] [--fail-fast] [--output <path>] [--json]"
);
println!(
" sdk migrate-report [--batch-report <path>] [--severity-map <path>] [--json]"
);
println!(
" sdk retry-failed --batch-report <path> [--target-schema <n>] [--dry-run] [--fail-fast] [--output <path>] [--json]"
);
println!(
" sdk migrate <project-dir> [--project <dir>] [--target-schema <n>] [--dry-run] [--json]"
);
println!(" sdk rollback <project-dir> [--project <dir>] [--backup <path>] [--json]");
println!(
" sdk rollback-batch [--projects <dir1,dir2,...>] [--projects-file <path>] [--scan-root <dir>] [--batch-report <path>] [--fail-fast] [--output <path>] [--json]"
);
println!(
" bag record [--output <path>] [--count <n>] [--topic <name>] [--domain <local|network>]"
);
println!(" bag play [--input <path>] [--speed <instant|realtime|factor>] [--json]");
println!();
println!("default load report path: {DEFAULT_LOAD_REPORT_PATH}");
println!("default resource report path: {DEFAULT_RESOURCE_REPORT_PATH}");
println!("default runtime report path: {DEFAULT_RUNTIME_REPORT_PATH}");
println!("default status report path: {DEFAULT_STATUS_REPORT_PATH}");
println!("default bag path: {DEFAULT_BAG_PATH}");
println!("default orchestration config path: {DEFAULT_ORCHESTRATION_CONFIG_PATH}");
}
}
}