1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-29 12:07:46 +00:00

Merge pull request #3951 from jfinkels/mktemp-too-many-templates

mktemp: match GNU error message on too many args
This commit is contained in:
Sylvestre Ledru 2022-09-21 22:39:55 +02:00 committed by GitHub
commit 68ad9e4301
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 3 deletions

View file

@ -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;
@ -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.

View file

@ -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]