diff options
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 50 |
1 files changed, 26 insertions, 24 deletions
diff --git a/src/main.rs b/src/main.rs index de3da62..e9543f8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,6 @@ -mod db; -mod files; -mod flac; +pub(crate) mod db; +pub(crate) mod files; +pub(crate) mod flac; use anyhow::Result; use clap::{Arg, ArgAction, Command, ValueHint, command, value_parser}; use clap_complete::{Generator, Shell, generate}; @@ -90,30 +90,32 @@ fn main() -> Result<()> { r.store(false, Ordering::SeqCst); })?; - let conn = db::init_connection(args.get_one::<PathBuf>("db"))?; + smol::block_on(async move { + let path = args.get_one::<PathBuf>("db"); + let db = db::init_db(path).await?; - let path = args.get_one::<PathBuf>("path"); + if path.is_none() && !args.get_flag("clean") && !args.get_flag("doit") { + let count = db::get_toencode_number(&db.connect()?).await?; + println!("Files to reencode:\t{}", style(count).green()); + return Ok(()); + } - if path.is_none() && !args.get_flag("clean") && !args.get_flag("doit") { - let count = db::get_toencode_number(&conn)?; - println!("Files to reencode:\t{}", style(count).green()); - return Ok(()); - } + if let Some(realpath) = path { + let hanlder = running.clone(); + files::index_files_recursively(realpath, &db.connect()?, hanlder)?; + } - if let Some(realpath) = path { - let hanlder = running.clone(); - files::index_files_recursively(realpath, &conn, hanlder)?; - } + if args.get_flag("clean") { + let handler = running.clone(); + files::clean_files(&db.connect()?, handler).await?; + } - if args.get_flag("clean") { - let handler = running.clone(); - files::clean_files(&conn, handler)?; - } + if args.get_flag("doit") { + let hanlder = running.clone(); + let threads = *args.get_one::<usize>("threads").unwrap(); + files::reencode_files(&db.connect()?, hanlder, threads).await?; + } - if args.get_flag("doit") { - let hanlder = running.clone(); - let threads = *args.get_one::<usize>("threads").unwrap(); - files::reencode_files(conn, hanlder, threads)?; - } - Ok::<(), anyhow::Error>(()) + Ok::<(), anyhow::Error>(()) + }) } |
