summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs50
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>(())
+ })
}