refactor: separate clap command logic into a function

This commit is contained in:
Noor 2025-03-21 19:45:13 +05:30
parent ba872917c2
commit 703a3e2c18
Signed by: noormohammedb
GPG Key ID: D83EFB8B3B967146

@ -23,7 +23,30 @@ fn main() {
}; };
env_logger::builder().filter_level(log_level).format_timestamp(None).init(); env_logger::builder().filter_level(log_level).format_timestamp(None).init();
let cmd = Command::new("detee-cli") let cmd = clap_cmd();
let matches = cmd.clone().get_matches();
match matches.get_one::<String>("format").unwrap().as_str() {
"json" => std::env::set_var("FORMAT", "JSON"),
"yaml" => std::env::set_var("FORMAT", "YAML"),
_ => (),
}
match matches.subcommand() {
Some(("completion", subcom_args)) => handle_completion(subcom_args, cmd),
Some(("app", subcom_args)) => handle_app(subcom_args),
Some(("vm", subcom_args)) => handle_vm(subcom_args),
Some(("vm-node", subcom_args)) => handle_vm_nodes(subcom_args),
Some(("operator", subcom_args)) => handle_operators(subcom_args),
Some(("packager", subcom_args)) => cli_print(handle_packagers(subcom_args)),
Some(("account", subcom_args)) => handle_account(subcom_args),
_ => {
println!("No valid subcommand provided. Use --help for more information.");
std::process::exit(0);
}
}
}
fn clap_cmd() -> Command {
Command::new("detee-cli")
.version("0.0.1") .version("0.0.1")
.author("https://detee.ltd") .author("https://detee.ltd")
.about(ABOUT) .about(ABOUT)
@ -550,25 +573,5 @@ fn main() {
.required(true) .required(true)
) )
) )
); )
let matches = cmd.clone().get_matches();
match matches.get_one::<String>("format").unwrap().as_str() {
"json" => std::env::set_var("FORMAT", "JSON"),
"yaml" => std::env::set_var("FORMAT", "YAML"),
_ => (),
}
match matches.subcommand() {
Some(("completion", subcom_args)) => handle_completion(subcom_args, cmd),
Some(("app", subcom_args)) => handle_app(subcom_args),
Some(("vm", subcom_args)) => handle_vm(subcom_args),
Some(("vm-node", subcom_args)) => handle_vm_nodes(subcom_args),
Some(("operator", subcom_args)) => handle_operators(subcom_args),
Some(("packager", subcom_args)) => cli_print(handle_packagers(subcom_args)),
Some(("account", subcom_args)) => handle_account(subcom_args),
_ => {
println!("No valid subcommand provided. Use --help for more information.");
std::process::exit(0);
}
}
} }