diff --git a/src/uu/base32/src/base_common.rs b/src/uu/base32/src/base_common.rs index 4fc8b495b..bc2faf63e 100644 --- a/src/uu/base32/src/base_common.rs +++ b/src/uu/base32/src/base_common.rs @@ -34,12 +34,15 @@ pub mod options { } impl Config { - fn from(options: clap::ArgMatches) -> Result { + fn from(app_name: &str, options: clap::ArgMatches) -> Result { let file: Option = match options.values_of(options::FILE) { Some(mut values) => { let name = values.next().unwrap(); - if values.len() != 0 { - return Err(format!("extra operand '{}'", name)); + if let Some(extra_op) = values.next() { + return Err(format!( + "extra operand '{}'\nTry '{} --help' for more information.", + extra_op, app_name + )); } if name == "-" { @@ -82,7 +85,7 @@ pub fn parse_base_cmd_args( let arg_list = args .collect_str(InvalidEncodingHandling::ConvertLossy) .accept_any(); - Config::from(app.get_matches_from(arg_list)) + Config::from(name, app.get_matches_from(arg_list)) } pub fn base_app<'a>(name: &str, version: &'a str, about: &'a str) -> App<'static, 'a> { diff --git a/tests/by-util/test_base32.rs b/tests/by-util/test_base32.rs index 38ead28f1..b7a976aa9 100644 --- a/tests/by-util/test_base32.rs +++ b/tests/by-util/test_base32.rs @@ -112,9 +112,9 @@ fn test_base32_extra_operand() { // Expect a failure when multiple files are specified. new_ucmd!() .arg("a.txt") - .arg("a.txt") + .arg("b.txt") .fails() - .stderr_only("base32: extra operand 'a.txt'"); + .stderr_only("base32: extra operand 'b.txt'"); } #[test] diff --git a/tests/by-util/test_base64.rs b/tests/by-util/test_base64.rs index 7c7f19205..73a30fffe 100644 --- a/tests/by-util/test_base64.rs +++ b/tests/by-util/test_base64.rs @@ -98,9 +98,9 @@ fn test_base64_extra_operand() { // Expect a failure when multiple files are specified. new_ucmd!() .arg("a.txt") - .arg("a.txt") + .arg("b.txt") .fails() - .stderr_only("base64: extra operand 'a.txt'"); + .stderr_only("base64: extra operand 'b.txt'"); } #[test]