diff --git a/src/bin/cargo/commands/vendor.rs b/src/bin/cargo/commands/vendor.rs index 05e0d7defd5..3f9c2dcaf3e 100644 --- a/src/bin/cargo/commands/vendor.rs +++ b/src/bin/cargo/commands/vendor.rs @@ -36,7 +36,7 @@ pub fn cli() -> Command { .arg(unsupported("relative-path")) .arg(unsupported("only-git-deps")) .arg(unsupported("disallow-duplicates")) - .arg_quiet() + .arg_quiet_without_unknown_silent_arg_tip() .arg_manifest_path() .after_help(color_print::cstr!( "Run `cargo help vendor` for more detailed information.\n" diff --git a/src/cargo/util/command_prelude.rs b/src/cargo/util/command_prelude.rs index dcfabb3c259..bd8889bef2c 100644 --- a/src/cargo/util/command_prelude.rs +++ b/src/cargo/util/command_prelude.rs @@ -331,6 +331,18 @@ pub trait CommandExt: Sized { } fn arg_quiet(self) -> Self { + let unsupported_silent_arg = { + let value_parser = UnknownArgumentValueParser::suggest_arg("--quiet"); + flag("silent", "") + .short('s') + .value_parser(value_parser) + .hide(true) + }; + self._arg(flag("quiet", "Do not print cargo log messages").short('q')) + ._arg(unsupported_silent_arg) + } + + fn arg_quiet_without_unknown_silent_arg_tip(self) -> Self { self._arg(flag("quiet", "Do not print cargo log messages").short('q')) } diff --git a/tests/testsuite/run.rs b/tests/testsuite/run.rs index 64cf4e16c6b..c58c239acf0 100644 --- a/tests/testsuite/run.rs +++ b/tests/testsuite/run.rs @@ -37,6 +37,43 @@ fn quiet_arg() { .run(); } +#[cargo_test] +fn unsupported_silent_arg() { + let p = project() + .file("src/main.rs", r#"fn main() { println!("hello"); }"#) + .build(); + + p.cargo("run -s") + .with_stderr( + "\ +error: unexpected argument '--silent' found + + tip: a similar argument exists: '--quiet' + +Usage: cargo[EXE] run [OPTIONS] [args]... + +For more information, try '--help'. +", + ) + .with_status(1) + .run(); + + p.cargo("run --silent") + .with_stderr( + "\ +error: unexpected argument '--silent' found + + tip: a similar argument exists: '--quiet' + +Usage: cargo[EXE] run [OPTIONS] [args]... + +For more information, try '--help'. +", + ) + .with_status(1) + .run(); +} + #[cargo_test] fn quiet_arg_and_verbose_arg() { let p = project()