From 3f49891dc875f3eb786ff5bb59c6bd43581ee81e Mon Sep 17 00:00:00 2001 From: Vladimir Rubin Date: Mon, 30 Dec 2024 19:37:37 +0200 Subject: [PATCH] fix: empty paths are now None and not Some("") --- src/lib.rs | 26 ++++++++++++++++---------- src/main.rs | 22 +++++++++++++++++++++- 2 files changed, 37 insertions(+), 11 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 47b00e2..3e4ec84 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -8,15 +8,15 @@ use std::{ #[derive(Debug)] pub struct Config { pub pictures_dir: Option, - pub videos_dir: Option, + pub video_dir: Option, pub music_dir: Option, pub books_dir: Option, pub sources: HashMap, } -pub const PICTURE_EXTENTIONS: [&str; 17] = [ +pub const PICTURE_EXTENTIONS: [&str; 18] = [ "jpg", "jpeg", "png", "gif", "webp", "jfif", "bmp", "apng", "avif", "tif", "tga", "psd", "eps", - "ai", "indd", "raw", "ico", + "ai", "indd", "raw", "ico", "svg", ]; pub const SOUND_EXTENTIONS: [&str; 10] = [ "mp3", "wav", "flac", "ogg", "aac", "m4a", "wma", "aiff", "au", "opus", @@ -33,7 +33,7 @@ impl Config { let mut sources: HashMap = HashMap::new(); let mut pictures_dir = None; - let mut videos_dir = None; + let mut video_dir = None; let mut music_dir = None; let mut books_dir = None; @@ -61,10 +61,10 @@ impl Config { sources.insert(key_trimmed.into(), value_trimmed.into()); } "destinations" => match key_trimmed { - "music_dir" => music_dir = Some(PathBuf::from(value_trimmed)), - "video_dir" => videos_dir = Some(PathBuf::from(value_trimmed)), - "books_dir" => books_dir = Some(PathBuf::from(value_trimmed)), - "pictures_dir" => pictures_dir = Some(PathBuf::from(value_trimmed)), + "music_dir" => set_directory(&mut music_dir, value_trimmed), + "video_dir" => set_directory(&mut video_dir, value_trimmed), + "books_dir" => set_directory(&mut books_dir, value_trimmed), + "pictures_dir" => set_directory(&mut pictures_dir, value_trimmed), _ => {} }, _ => {} @@ -74,7 +74,7 @@ impl Config { Ok(Self { pictures_dir, - videos_dir, + video_dir, music_dir, books_dir, sources, @@ -85,7 +85,7 @@ impl Config { let config_str = r#" [destinations] pictures_dir = "" -videos_dir = "" +video_dir = "" music_dir = "" books_dir = "" @@ -98,3 +98,9 @@ books_dir = "" Ok(()) } } + +fn set_directory(dir: &mut Option, value: &str) { + if !value.is_empty() { + *dir = Some(PathBuf::from(value)); + } +} diff --git a/src/main.rs b/src/main.rs index b60a1b8..2cc1ef1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -67,6 +67,10 @@ fn main() { } } + if cfg!(debug_assertions) { + println!("config:{:#?}", CONFIG.get().unwrap()) + } + let mut actual_selection: Vec = Vec::new(); loop { @@ -145,6 +149,10 @@ fn main() { let total_files_sorted: Arc> = Arc::new(Mutex::new(0)); for selection in actual_selection { + if cfg!(debug_assertions) { + println!("spawned a thread with selection: {}", selection); + } + let tfs = Arc::clone(&total_files_sorted); let thread = thread::spawn(move || match sort_files(selection, recursive) { Ok(files_sorted) => { @@ -189,7 +197,7 @@ fn sort_files(selection: String, recursive: bool) -> Result Result {} Err(err) => eprintln!("Error moving file: {}", err),