diff --git a/src/uu/shred/src/shred.rs b/src/uu/shred/src/shred.rs index 1ceffe995..47c3ff6ec 100644 --- a/src/uu/shred/src/shred.rs +++ b/src/uu/shred/src/shred.rs @@ -320,16 +320,16 @@ pub fn uu_app() -> Command { } fn get_size(size_str_opt: Option) -> Option { - match size_str_opt { - Some(size) => match parse_size(size.as_str()) { - Ok(res) => Some(res), - Err(_) => { + size_str_opt + .as_ref() + .and_then(|size| parse_size(size.as_str()).ok()) + .or_else(|| { + if let Some(size) = size_str_opt { show_error!("invalid file size: {}", size.quote()); - std::process::exit(1) + std::process::exit(1); } - }, - None => None, - } + None + }) } fn pass_name(pass_type: &PassType) -> String {