aboutsummaryrefslogtreecommitdiff
path: root/tool/src/import/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tool/src/import/mod.rs')
-rw-r--r--tool/src/import/mod.rs15
1 files changed, 14 insertions, 1 deletions
diff --git a/tool/src/import/mod.rs b/tool/src/import/mod.rs
index fb42c4d..b4e03d6 100644
--- a/tool/src/import/mod.rs
+++ b/tool/src/import/mod.rs
@@ -15,7 +15,7 @@ use jellycommon::{
};
use jellymatroska::read::EbmlReader;
use jellyremuxer::import::import_metadata;
-use log::{info, warn};
+use log::{debug, info, warn};
use std::{
collections::BTreeMap,
fs::{remove_file, File},
@@ -37,11 +37,24 @@ pub(crate) fn import(action: Action, dry: bool) -> anyhow::Result<()> {
video,
ignore_metadata,
r#move,
+ skip_existing,
} => {
if std::env::current_dir().unwrap().file_name().unwrap() != "library" {
warn!("new command can only be used in the library directory; what you are doing right now probably wont work.")
}
+ if skip_existing {
+ if let Some(input) = &input {
+ let guessed_path = path.join(input.file_stem().unwrap_or(input.as_os_str()));
+ if guessed_path.exists() {
+ info!("guessed output ({guessed_path:?}) exists, skipping import");
+ return Ok(());
+ } else {
+ debug!("guessed output ({guessed_path:?}) missing");
+ }
+ }
+ }
+
let tmdb_kind = if series { "tv" } else { "movie" };
let tmdb_id = if let Some(id) = tmdb_id {
Some(id.parse().unwrap())