Skip to content

Commit

Permalink
Merge pull request #3951 from jfinkels/mktemp-too-many-templates
Browse files Browse the repository at this point in the history
mktemp: match GNU error message on too many args
  • Loading branch information
sylvestre authored Sep 21, 2022
2 parents 5a746a7 + 7b35749 commit 68ad9e4
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 3 deletions.
12 changes: 10 additions & 2 deletions src/uu/mktemp/src/mktemp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

use clap::{crate_version, Arg, ArgMatches, Command};
use uucore::display::{println_verbatim, Quotable};
use uucore::error::{FromIo, UError, UResult};
use uucore::error::{FromIo, UError, UResult, UUsageError};
use uucore::format_usage;

use std::env;
Expand Down Expand Up @@ -327,7 +327,15 @@ impl Params {
pub fn uumain(args: impl uucore::Args) -> UResult<()> {
let args = args.collect_lossy();

let matches = uu_app().try_get_matches_from(&args)?;
let matches = match uu_app().try_get_matches_from(&args) {
Ok(m) => m,
Err(e) => {
if e.kind == clap::error::ErrorKind::TooManyValues && e.info[0] == "<template>..." {
return Err(UUsageError::new(1, "too many templates"));
}
return Err(e.into());
}
};

// Parse command-line options into a format suitable for the
// application logic.
Expand Down
6 changes: 5 additions & 1 deletion tests/by-util/test_mktemp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -613,7 +613,11 @@ fn test_too_few_xs_suffix_directory() {

#[test]
fn test_too_many_arguments() {
new_ucmd!().args(&["-q", "a", "b"]).fails().code_is(1);
new_ucmd!()
.args(&["-q", "a", "b"])
.fails()
.code_is(1)
.usage_error("too many templates");
}

#[test]
Expand Down

0 comments on commit 68ad9e4

Please sign in to comment.