mirror of
https://github.com/clap-rs/clap
synced 2024-12-12 22:02:35 +00:00
Merge pull request #4988 from sebastiantoh/ignore-errors
fix(parser): Allow help and version command
This commit is contained in:
commit
d83cc6d3e7
2 changed files with 24 additions and 1 deletions
|
@ -3810,7 +3810,7 @@ impl Command {
|
|||
// do the real parsing
|
||||
let mut parser = Parser::new(self);
|
||||
if let Err(error) = parser.get_matches_with(&mut matcher, raw_args, args_cursor) {
|
||||
if self.is_set(AppSettings::IgnoreErrors) {
|
||||
if self.is_set(AppSettings::IgnoreErrors) && error.use_stderr() {
|
||||
debug!("Command::_do_parse: ignoring error: {error}");
|
||||
} else {
|
||||
return Err(error);
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
use clap::{arg, Arg, ArgAction, Command};
|
||||
|
||||
use super::utils;
|
||||
|
||||
#[test]
|
||||
fn single_short_arg_without_value() {
|
||||
let cmd = Command::new("cmd").ignore_errors(true).arg(arg!(
|
||||
|
@ -124,3 +126,24 @@ fn subcommand() {
|
|||
Some("some other val")
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn help_command() {
|
||||
static HELP: &str = "\
|
||||
Usage: test
|
||||
|
||||
Options:
|
||||
-h, --help Print help
|
||||
";
|
||||
|
||||
let cmd = Command::new("test").ignore_errors(true);
|
||||
|
||||
utils::assert_output(cmd, "test --help", HELP, false);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn version_command() {
|
||||
let cmd = Command::new("test").ignore_errors(true).version("0.1");
|
||||
|
||||
utils::assert_output(cmd, "test --version", "test 0.1\n", false);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue