diff --git a/src/playlist.rs b/src/playlist.rs index 8f42b16..b6a0876 100644 --- a/src/playlist.rs +++ b/src/playlist.rs @@ -67,7 +67,7 @@ impl<'a> Playlist<'a> { drop(writer); let output = output.into_inner()?; - if fs::read(&path)? != output { + if !path.exists() || fs::read(&path)? != output { fs::write(path, output.as_slice())?; Ok(true) } else { diff --git a/src/sync.rs b/src/sync.rs index 9bc0d83..6840b4c 100644 --- a/src/sync.rs +++ b/src/sync.rs @@ -162,6 +162,7 @@ pub(crate) fn sync( if !target.exists() { println!("[info] copying from {:?} to {:?}.", source, target); + fs::create_dir_all(target.parent().unwrap())?; fs::copy(source, target)?; } }