Use clap's conflicts_with
and requires
(#68)
Seems better than writing it by hand.
This commit is contained in:
parent
0f9fb418a0
commit
98990fe2ab
24
src/app.rs
24
src/app.rs
@ -76,10 +76,12 @@ pub fn app() {
|
||||
.arg(Arg::with_name("quiet")
|
||||
.short("q")
|
||||
.long("quiet")
|
||||
.help("Suppress all output"))
|
||||
.help("Suppress all output")
|
||||
.conflicts_with("dry-run"))
|
||||
.arg(Arg::with_name("dry-run")
|
||||
.long("dry-run")
|
||||
.help("Print recipe text without executing"))
|
||||
.help("Print recipe text without executing")
|
||||
.conflicts_with("quiet"))
|
||||
.arg(Arg::with_name("evaluate")
|
||||
.long("evaluate")
|
||||
.help("Print evaluated variables"))
|
||||
@ -99,28 +101,18 @@ pub fn app() {
|
||||
.arg(Arg::with_name("working-directory")
|
||||
.long("working-directory")
|
||||
.takes_value(true)
|
||||
.help("Use <working-directory> as working directory. --justfile must also be set"))
|
||||
.help("Use <working-directory> as working directory. --justfile must also be set")
|
||||
.requires("justfile"))
|
||||
.arg(Arg::with_name("justfile")
|
||||
.long("justfile")
|
||||
.takes_value(true)
|
||||
.help("Use <justfile> as justfile. --working-directory must also be set"))
|
||||
.help("Use <justfile> as justfile. --working-directory must also be set")
|
||||
.requires("working-directory"))
|
||||
.arg(Arg::with_name("arguments")
|
||||
.multiple(true)
|
||||
.help("The recipe(s) to run, defaults to the first recipe in the justfile"))
|
||||
.get_matches();
|
||||
|
||||
// it is not obvious to me what we should do if only one of --justfile and
|
||||
// --working-directory are passed. refuse to run in that case to avoid
|
||||
// suprises.
|
||||
if matches.is_present("justfile") ^ matches.is_present("working-directory") {
|
||||
die!("--justfile and --working-directory may only be used together");
|
||||
}
|
||||
|
||||
// --dry-run and --quiet don't make sense together
|
||||
if matches.is_present("dry-run") && matches.is_present("quiet") {
|
||||
die!("--dry-run and --quiet may not be used together");
|
||||
}
|
||||
|
||||
let use_color_argument = matches.value_of("color").expect("--color had no value");
|
||||
let use_color = UseColor::from_argument(use_color_argument);
|
||||
|
||||
|
@ -809,10 +809,15 @@ default:
|
||||
fn quiet_flag_or_dry_run_flag() {
|
||||
integration_test(
|
||||
&["--quiet", "--dry-run"],
|
||||
r#""#,
|
||||
255,
|
||||
"",
|
||||
"--dry-run and --quiet may not be used together\n",
|
||||
1,
|
||||
"",
|
||||
"error: The argument '--dry-run' cannot be used with '--quiet'
|
||||
|
||||
USAGE:
|
||||
just --quiet --color <color>
|
||||
|
||||
For more information try --help\n",
|
||||
);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user