summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Wiederhake <BenWiederhake.GitHub@gmx.de>2024-04-28 23:05:43 +0200
committerBen Wiederhake <BenWiederhake.GitHub@gmx.de>2024-04-28 23:05:43 +0200
commit4f5a3b47161df72546c7cf8d5e0f5ef60bfdb294 (patch)
tree3800e98d05431caec00e7416d5fe000cf4773a15
parente978fe538276ffcf4b7a10dafc47d01fd3c9e29d (diff)
id: mark passwd-format and pretty-print as conflicting
These are non-sensical to combine, and didn't work reasonably anyway. Also, passwd-formatting is our own extension, so there is no need for compatibility anyway.
-rw-r--r--src/uu/id/src/id.rs1
-rw-r--r--tests/by-util/test_id.rs13
2 files changed, 14 insertions, 0 deletions
diff --git a/src/uu/id/src/id.rs b/src/uu/id/src/id.rs
index fe605a33c..e803708bd 100644
--- a/src/uu/id/src/id.rs
+++ b/src/uu/id/src/id.rs
@@ -397,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(
diff --git a/tests/by-util/test_id.rs b/tests/by-util/test_id.rs
index e51f3e542..070ed011e 100644
--- a/tests/by-util/test_id.rs
+++ b/tests/by-util/test_id.rs
@@ -461,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'");
+}