Suffix option #77

This commit is contained in:
Matteo Paonessa 2024-11-20 11:57:17 +08:00
parent 74115e599f
commit 2264032e47
2 changed files with 16 additions and 1 deletions

View File

@ -44,6 +44,7 @@ fn main() {
let keep_dates = opt.keep_dates; let keep_dates = opt.keep_dates;
let png_optimization_level = opt.png_opt_level.clamp(0, 6); let png_optimization_level = opt.png_opt_level.clamp(0, 6);
let lossless = opt.lossless; let lossless = opt.lossless;
let suffix = opt.suffix;
let compress_by_size = opt.max_size.is_some(); let compress_by_size = opt.max_size.is_some();
@ -130,11 +131,21 @@ fn main() {
result: false, result: false,
}; };
let filename = if keep_structure { let mut filename = if keep_structure {
input_file.strip_prefix(base_path.clone()).unwrap_or_else(|_| Path::new("")).as_os_str() input_file.strip_prefix(base_path.clone()).unwrap_or_else(|_| Path::new("")).as_os_str()
} else { } else {
input_file.file_name().unwrap_or_default() input_file.file_name().unwrap_or_default()
}; };
let mut basename = Path::new(filename).file_stem().unwrap_or_default().to_os_string();
if !suffix.is_empty() {
basename.push(suffix.clone());
if let Some(ext) = input_file.extension() {
basename.push(".");
basename.push(ext);
}
filename = basename.as_os_str();
}
if filename.is_empty() { if filename.is_empty() {
compression_result.error = "Cannot retrieve filename for {}. Skipping.".to_string(); compression_result.error = "Cannot retrieve filename for {}. Skipping.".to_string();

View File

@ -102,6 +102,10 @@ pub struct Opt {
#[structopt(long = "same-folder-as-input", conflicts_with = "output")] #[structopt(long = "same-folder-as-input", conflicts_with = "output")]
pub same_folder_as_input: bool, pub same_folder_as_input: bool,
/// convert the image to the selected format (jpg, png, webp, tiff)
#[structopt(long = "suffix", default_value = "none")]
pub suffix: String,
/// Files to process /// Files to process
#[structopt(name = "FILE", parse(from_os_str))] #[structopt(name = "FILE", parse(from_os_str))]
pub files: Vec<PathBuf>, pub files: Vec<PathBuf>,