From 595764b69aa2b6a5f682360033024f3d391b2b28 Mon Sep 17 00:00:00 2001 From: KeksNino Date: Sun, 6 Sep 2026 01:36:44 +0200 Subject: [PATCH] feat: add log in ~/.local/share/music-sort to show past imported files --- src/move_files.rs | 37 ++++++++++++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/src/move_files.rs b/src/move_files.rs index 3722b42..64576ea 100644 --- a/src/move_files.rs +++ b/src/move_files.rs @@ -1,8 +1,12 @@ +use chrono::Utc; use glob::glob; use lofty::prelude::ItemKey; use lofty::tag::Accessor; use lofty::tag::Tag; -use std::fs::{copy, create_dir_all, remove_dir, rename}; +use std::env::var; +use std::fs::OpenOptions; +use std::fs::{copy, create_dir, create_dir_all, remove_dir, rename, File}; +use std::io::Write; use std::path::PathBuf; pub fn move_files( @@ -12,7 +16,7 @@ pub fn move_files( should_copy: bool, has_parent: bool, ) -> Result<(), Box> { - let target_dir = PathBuf::from("/home/user/Desktop/coding/keks-sort"); + let target_dir = PathBuf::from("/home/user/Music/Tracks"); let artist = tag.artist(); let album = tag.album(); @@ -77,6 +81,33 @@ pub fn move_files( remove_dir(file_path.parent().unwrap())?; } - //println!("Imported file: {:?}", file_path.file_name().unwrap()); + write_log(file_path)?; + + Ok(()) +} + +fn write_log(file_path: PathBuf) -> Result<(), Box> { + let home_dir: PathBuf = PathBuf::from(var("HOME").expect("HOME is no set")); + let data_dir = home_dir.join(".local").join("share").join("music-sort"); + let log_file_path = data_dir.join("music-sort.log"); + + if !data_dir.exists() { + create_dir(&data_dir)?; + } + if !log_file_path.exists() { + File::create(&log_file_path)?; + } + + let mut log_file = OpenOptions::new().append(true).open(log_file_path).unwrap(); + + if let Err(e) = writeln!( + log_file, + "[{}]: Imported file: {:?}", + Utc::now().format("%Y-%m-%dT%H:%M:%S"), + file_path.file_name().unwrap() + ) { + eprintln!("Couldn't write to file: {}", e); + } + Ok(()) }