diff options
Diffstat (limited to 'tools/src/bin')
-rw-r--r-- | tools/src/bin/create_item.rs | 34 | ||||
-rw-r--r-- | tools/src/bin/import.rs | 33 |
2 files changed, 29 insertions, 38 deletions
diff --git a/tools/src/bin/create_item.rs b/tools/src/bin/create_item.rs deleted file mode 100644 index eb5b3a9..0000000 --- a/tools/src/bin/create_item.rs +++ /dev/null @@ -1,34 +0,0 @@ -use std::{fs::File, io::Write, path::PathBuf}; - -use clap::Parser; -use jellycommon::ItemInfo; - -#[derive(Parser)] -struct Args { - #[clap(short = 'I', long)] - item: PathBuf, - #[clap(short = 'd', long)] - dry: bool, - #[clap(short, long)] - title: String, -} - -fn main() -> anyhow::Result<()> { - let args = Args::parse(); - - let iteminfo = ItemInfo { - title: args.title, - path: String::new(), - duration: 0.0, - tracks: Default::default(), - }; - - let k = serde_json::to_string_pretty(&iteminfo)?; - if args.dry { - println!("{k}") - } else { - let mut f = File::create(args.item)?; - f.write_all(k.as_bytes())?; - } - Ok(()) -} diff --git a/tools/src/bin/import.rs b/tools/src/bin/import.rs index 98f5fb7..4af6ac7 100644 --- a/tools/src/bin/import.rs +++ b/tools/src/bin/import.rs @@ -2,26 +2,51 @@ use clap::Parser; use jellycommon::ItemInfo; use jellymatroska::read::EbmlReader; use jellyremuxer::import::import_read; +use log::warn; use std::{fs::File, io::Write, path::PathBuf}; #[derive(Parser)] struct Args { #[clap(short = 'I', long)] item: PathBuf, + + #[clap(short, long)] + banner: Option<PathBuf>, + + #[clap(short, long)] + title: Option<String>, + #[clap(short = 'd', long)] dry: bool, + #[clap(short = 'i', long)] input: PathBuf, } fn main() -> anyhow::Result<()> { - env_logger::init_from_env("LOG"); + env_logger::builder() + .filter_level(log::LevelFilter::Info) + .parse_env("LOG") + .init(); let args = Args::parse(); - let mut iteminfo: ItemInfo = serde_json::from_reader(File::open(&args.item)?)?; - // let iteminfo_orig = iteminfo.clone(); + let mut iteminfo: ItemInfo = match File::open(&args.item) { + Ok(f) => serde_json::from_reader(f)?, + Err(e) => { + warn!("could not load item info: {e}"); + warn!("using the default instead"); + ItemInfo { + duration: 0.0, + path: args.input.clone(), + banner: args.banner, + title: args + .title + .unwrap_or(args.item.to_str().unwrap().to_string()), + tracks: Default::default(), + } + } + }; - iteminfo.path = args.input.to_str().unwrap().to_string(); let input = File::open(args.input.clone()).unwrap(); let mut input = EbmlReader::new(input); |