From ac970a43020230a8c6c95441d051d9eee749947c Mon Sep 17 00:00:00 2001 From: phoenix Date: Thu, 13 Mar 2025 19:12:49 -0400 Subject: [PATCH] Refactoring code --- src/help.rs | 38 +++++++++++++++++++++++++++++++++ src/main.rs | 27 +++++++++++------------ src/managers/action_managers.rs | 17 ++++++++++++++- src/utilities/checks.rs | 5 +++++ 4 files changed, 72 insertions(+), 15 deletions(-) create mode 100644 src/help.rs diff --git a/src/help.rs b/src/help.rs new file mode 100644 index 0000000..4eb12a7 --- /dev/null +++ b/src/help.rs @@ -0,0 +1,38 @@ + + +pub fn print_help() { + let msg: String = String::from( + r#"icd [Action] [flag] + + Actions + download + upload-meta + retrieve + delete + + Flags + Required for all actions + -u username + -p password + -h host + + Required for upload with metadata + -s path of song + -t track number + -m metadata filepath + -ca coverart filepath + -scma directory where songs, metadata, and cover art exists and will be uploaded (Optional) + + Required for download + -b song id + -d path to download song (Optional) + + Required for retrieving records + -rt retrieve type (songs is only accepted) + + Required for deleting a song + -D song id"#, + ); + + println!("{}", msg); +} \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index 68c11ee..4b6dd34 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,5 @@ mod constants; +mod help; mod managers; mod models; mod parsers; @@ -6,12 +7,15 @@ mod syncers; mod utilities; use std::env; -use std::process; +// use std::process; +/* fn exit_program(code: i32) { process::exit(code); } +*/ +/* fn print_help() { let msg: String = String::from( r#"icd [Action] [flag] @@ -48,29 +52,24 @@ fn print_help() { println!("{}", msg); } + */ fn main() { let args: Vec = env::args().collect(); - - if args.len() == 1 { - print_help(); - exit_program(-1); - } - let args_len = args.len() as i32; + if args_len == 1 { + help::print_help(); + utilities::checks::exit_program(-1); + } + println!("Argument count: {}", args_len); - let mut act_mgr = managers::action_managers::ActionManager { - action: String::new(), - flags: Vec::new(), - params: args, - param_count: args_len, - }; + let mut act_mgr = managers::action_managers::ActionManager::default(); + act_mgr.set_params(&args); act_mgr.initialize(); let chosen_act = act_mgr.retrieve_icarus_action(); - chosen_act.print_action_and_flags(); let mut cmt_mgr = managers::commit_manager::CommitManager { diff --git a/src/managers/action_managers.rs b/src/managers/action_managers.rs index d92af04..dde763c 100644 --- a/src/managers/action_managers.rs +++ b/src/managers/action_managers.rs @@ -10,6 +10,17 @@ pub struct ActionManager { pub param_count: i32, } +impl Default for ActionManager { + fn default() -> Self { + ActionManager { + action: String::new(), + flags: Vec::new(), + params: Vec::new(), + param_count: -1, + } + } +} + impl ActionManager { pub fn retrieve_icarus_action(&self) -> models::icarus_action::IcarusAction { return models::icarus_action::IcarusAction { @@ -45,6 +56,11 @@ impl ActionManager { self.action = self.action.to_lowercase(); } + pub fn set_params(&mut self, args: &Vec) { + self.params = args.clone(); + self.param_count = self.params.len() as i32; + } + fn validate_flags(&mut self) { println!("Validating flags"); @@ -102,7 +118,6 @@ impl ActionManager { fn does_flag_have_value(&self, flag: &String) -> bool { let flags_tmp = self.parsed_flags(); - let mut i_found: i32 = -1; for i in 0..flags_tmp.len() { diff --git a/src/utilities/checks.rs b/src/utilities/checks.rs index 96537ad..2e67710 100644 --- a/src/utilities/checks.rs +++ b/src/utilities/checks.rs @@ -26,3 +26,8 @@ impl Checks { return index; } } + + +pub fn exit_program(code: i32) { + std::process::exit(code); +} \ No newline at end of file