diff --git a/ChangeLog b/ChangeLog index 288b57a..6aab375 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,8 @@ ----- 1. Add support for analysing CUE files. 2. Output list of (up to 100) tracks that failed to analyse. +3. When performing a dry-run analysis (--dry-run) print paths of all tracks to + be analysed and to be removed. 0.0.2 ----- diff --git a/src/analyse.rs b/src/analyse.rs index b9d57d2..c0b8354 100644 --- a/src/analyse.rs +++ b/src/analyse.rs @@ -336,7 +336,17 @@ pub fn analyse_files(db_path: &str, mpath: &PathBuf, dry_run:bool, keep_old:bool if !keep_old { db.remove_old(mpath, dry_run); } - if !dry_run { + if dry_run { + if !track_paths.is_empty() || !cue_tracks.is_empty() { + log::info!("The following need to be analysed:"); + for track in track_paths { + log::info!(" {}", track); + } + for track in cue_tracks { + log::info!(" {}", track.track_path.to_string_lossy()); + } + } + } else { if track_paths.len()>0 { match analyse_new_files(&db, mpath, track_paths) { Ok(_) => { }, diff --git a/src/db.rs b/src/db.rs index 101d5e7..68945b7 100644 --- a/src/db.rs +++ b/src/db.rs @@ -178,18 +178,25 @@ impl Db { } let num_to_remove = to_remove.len(); log::info!("Num non-existant tracks: {}", num_to_remove); - if !dry_run && num_to_remove>0 { - let count_before = self.get_track_count(); - for t in to_remove { - //log::debug!("Remove '{}'", t); - match self.conn.execute("DELETE FROM Tracks WHERE File = ?;", params![t]) { - Ok(_) => { }, - Err(e) => { log::error!("Failed to remove '{}' - {}", t, e) } + if num_to_remove>0 { + if dry_run { + log::info!("The following need to be removed from database:"); + for t in to_remove { + log::info!(" {}", t); + } + } else { + let count_before = self.get_track_count(); + for t in to_remove { + //log::debug!("Remove '{}'", t); + match self.conn.execute("DELETE FROM Tracks WHERE File = ?;", params![t]) { + Ok(_) => { }, + Err(e) => { log::error!("Failed to remove '{}' - {}", t, e) } + } + } + let count_now = self.get_track_count(); + if (count_now + num_to_remove) != count_before { + log::error!("Failed to remove all tracks. Count before: {}, wanted to remove: {}, count now: {}", count_before, num_to_remove, count_now); } - } - let count_now = self.get_track_count(); - if (count_now + num_to_remove) != count_before { - log::error!("Failed to remove all tracks. Count before: {}, wanted to remove: {}, count now: {}", count_before, num_to_remove, count_now); } } }