From d79f00871e8fec29e0b88bf77428f6238b0fe638 Mon Sep 17 00:00:00 2001 From: ByteDream Date: Sun, 9 Apr 2023 11:24:12 +0200 Subject: [PATCH] Enable special files to be declared as output file --- crunchy-cli-core/src/archive/command.rs | 2 +- crunchy-cli-core/src/download/command.rs | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/crunchy-cli-core/src/archive/command.rs b/crunchy-cli-core/src/archive/command.rs index fe84c5b..bc923dc 100644 --- a/crunchy-cli-core/src/archive/command.rs +++ b/crunchy-cli-core/src/archive/command.rs @@ -110,7 +110,7 @@ impl Execute for Archive { .unwrap_or_default() .to_string_lossy() != "mkv" - && !is_special_file(PathBuf::from(&self.output)) + && !is_special_file(&self.output) && self.output != "-" { bail!("File extension is not '.mkv'. Currently only matroska / '.mkv' files are supported") diff --git a/crunchy-cli-core/src/download/command.rs b/crunchy-cli-core/src/download/command.rs index fb40735..67cb633 100644 --- a/crunchy-cli-core/src/download/command.rs +++ b/crunchy-cli-core/src/download/command.rs @@ -5,7 +5,7 @@ use crate::utils::ffmpeg::FFmpegPreset; use crate::utils::filter::Filter; use crate::utils::format::{Format, SingleFormat}; use crate::utils::log::progress; -use crate::utils::os::{free_file, has_ffmpeg}; +use crate::utils::os::{free_file, has_ffmpeg, is_special_file}; use crate::utils::parse::parse_url; use crate::utils::video::variant_data_from_stream; use crate::Execute; @@ -86,6 +86,7 @@ impl Execute for Download { .extension() .unwrap_or_default() .is_empty() + && !is_special_file(&self.output) && self.output != "-" { bail!("No file extension found. Please specify a file extension (via `-o`) for the output file") @@ -132,7 +133,7 @@ impl Execute for Download { let download_builder = DownloadBuilder::new() .default_subtitle(self.subtitle.clone()) - .output_format(if self.output == "-" { + .output_format(if is_special_file(&self.output) || self.output == "-" { Some("mpegts".to_string()) } else { None