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

Merge pull request #6288 from BenWiederhake/dev-id-flag-repeat

id: Handle repeated flags, recognize conflict between pretty-print and passwd file-entry
This commit is contained in:
Daniel Hofstetter 2024-04-29 10:42:15 +02:00 committed by GitHub
commit 5fbc588b85
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 20 additions and 0 deletions

View file

@ -324,6 +324,7 @@ pub fn uu_app() -> Command {
.about(ABOUT)
.override_usage(format_usage(USAGE))
.infer_long_args(true)
.args_override_self(true)
.arg(
Arg::new(options::OPT_AUDIT)
.short('A')
@ -396,6 +397,7 @@ pub fn uu_app() -> Command {
Arg::new(options::OPT_PASSWORD)
.short('P')
.help("Display the id as a password file entry.")
.conflicts_with(options::OPT_HUMAN_READABLE)
.action(ArgAction::SetTrue),
)
.arg(

View file

@ -327,6 +327,11 @@ fn test_id_default_format() {
.args(&args)
.succeeds()
.stdout_only(unwrap_or_return!(expected_result(&ts, &args)).stdout_str());
let args = [opt2, opt2];
ts.ucmd()
.args(&args)
.succeeds()
.stdout_only(unwrap_or_return!(expected_result(&ts, &args)).stdout_str());
}
}
@ -456,3 +461,16 @@ fn test_id_no_specified_user_posixly() {
}
}
}
#[test]
#[cfg(all(unix, not(target_os = "android")))]
fn test_id_pretty_print_password_record() {
// `-p` is BSD only and not supported on GNU's `id`.
// `-P` is our own extension, and not supported by either GNU nor BSD.
// These must conflict, because they both set the output format.
new_ucmd!()
.arg("-p")
.arg("-P")
.fails()
.stderr_contains("the argument '-p' cannot be used with '-P'");
}