diff --git a/src/main.rs b/src/main.rs index ae6dd03..2e42fda 100644 --- a/src/main.rs +++ b/src/main.rs @@ -11,9 +11,40 @@ use filesorters::Config; static CONFIG: OnceLock = OnceLock::new(); +const VERSION: &str = env!("CARGO_PKG_VERSION"); + fn main() { let config_path = get_config_path(); + let args: Vec = env::args().collect(); + + if args.len() > 1 + && (args.contains(&"-v".to_string()) || args.contains(&"--version".to_string())) + { + println!("Filesorters version {}", VERSION); + return; + } + + + if args.len() > 1 + && (args.contains(&"-c".to_string()) || args.contains(&"--config".to_string())) + { + println!("Config location: {}", config_path.display()); + return; + } + + if args.len() > 1 && (args.contains(&"-h".to_string()) || args.contains(&"--help".to_string())) + { + print!( + "Options: +-h, --help - show this help message +-v, --version - show the version +-c, --config-path - config file location +" + ); + return; + } + if !config_path.exists() { println!("Config file does not exist, creating..."); filesorters::Config::create(&config_path).unwrap(); @@ -195,20 +226,21 @@ fn move_file_to_directory(path: &Path, dir: &Path) { if !dir.exists() { match fs::create_dir(dir) { - Ok(_) => {}, - Err(err) => eprintln!("Error creating destination directory: {}", err) + Ok(_) => {} + Err(err) => eprintln!("Error creating destination directory: {}", err), } return; } let destination = dir.join(path.file_name().unwrap_or_default()); - + match fs::rename(path, &destination) { - Ok(()) => {}, + Ok(()) => {} Err(err) => eprintln!("Error moving file: {}", err), } } +#[inline] fn get_config_path() -> PathBuf { if cfg!(target_os = "windows") { let username = env::var("USERNAME").unwrap_or_else(|_| "Default".to_string());