From 703a3e2c1807a6816a2adb83b6b081e383d96da6 Mon Sep 17 00:00:00 2001 From: Noor Date: Fri, 21 Mar 2025 19:45:13 +0530 Subject: [PATCH] refactor: separate clap command logic into a function --- src/bin/detee-cli.rs | 47 +++++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/src/bin/detee-cli.rs b/src/bin/detee-cli.rs index 0552269..8790943 100644 --- a/src/bin/detee-cli.rs +++ b/src/bin/detee-cli.rs @@ -23,7 +23,30 @@ fn main() { }; 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::("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") .author("https://detee.ltd") .about(ABOUT) @@ -550,25 +573,5 @@ fn main() { .required(true) ) ) - ); - - let matches = cmd.clone().get_matches(); - match matches.get_one::("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); - } - } + ) }