From 650338d3e6eb50293eee3f440cb76e8960e8c72a Mon Sep 17 00:00:00 2001 From: bytedream Date: Mon, 8 Jan 2024 10:57:30 +0100 Subject: [PATCH] Prepend `./` to the output path on linux if the input path is only a filename (#303) --- crunchy-cli-core/src/utils/download.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/crunchy-cli-core/src/utils/download.rs b/crunchy-cli-core/src/utils/download.rs index 64a6d1a..1b99c30 100644 --- a/crunchy-cli-core/src/utils/download.rs +++ b/crunchy-cli-core/src/utils/download.rs @@ -534,7 +534,18 @@ impl Downloader { if let Some(output_format) = self.output_format { command_args.extend(["-f".to_string(), output_format]); } - command_args.push(dst.to_str().unwrap().to_string()); + + // prepend './' to the path on linux since ffmpeg may interpret the path incorrectly if it's just the filename. + // see https://github.com/crunchy-labs/crunchy-cli/issues/303 for example + if !cfg!(windows) + && dst + .parent() + .map_or(true, |p| p.to_string_lossy().is_empty()) + { + command_args.push(Path::new("./").join(dst).to_string_lossy().to_string()); + } else { + command_args.push(dst.to_string_lossy().to_string()) + } debug!("ffmpeg {}", command_args.join(" "));