diff options
| author | Yoav Lavi <yoavlavi122@gmail.com> | 2022-04-08 15:02:49 +0200 |
|---|---|---|
| committer | Yoav Lavi <yoavlavi122@gmail.com> | 2022-04-09 16:50:10 +0200 |
| commit | ffde78b4564301888fcb4d5b970d8e9475bd33e9 (patch) | |
| tree | cacc631fb6722fd93c35c8fab9f60b90f8cec9f5 /clippy_dev/src | |
| parent | a63308be0a66fe34aa1ccefef76fa6a0bc50d2a3 (diff) | |
| download | rust-ffde78b4564301888fcb4d5b970d8e9475bd33e9.tar.gz rust-ffde78b4564301888fcb4d5b970d8e9475bd33e9.zip | |
Allow passing --remove to `cargo dev setup <SUBCOMMAND>`
add missing args unque name not needed more descriptive help formatting fixes missing quote
Diffstat (limited to 'clippy_dev/src')
| -rw-r--r-- | clippy_dev/src/main.rs | 51 |
1 files changed, 44 insertions, 7 deletions
diff --git a/clippy_dev/src/main.rs b/clippy_dev/src/main.rs index b1fe35a0243..833b7393ff8 100644 --- a/clippy_dev/src/main.rs +++ b/clippy_dev/src/main.rs @@ -36,13 +36,31 @@ fn main() { } }, ("setup", Some(sub_command)) => match sub_command.subcommand() { - ("intellij", Some(matches)) => setup::intellij::setup_rustc_src( - matches - .value_of("rustc-repo-path") - .expect("this field is mandatory and therefore always valid"), - ), - ("git-hook", Some(matches)) => setup::git_hook::install_hook(matches.is_present("force-override")), - ("vscode-tasks", Some(matches)) => setup::vscode::install_tasks(matches.is_present("force-override")), + ("intellij", Some(matches)) => { + if matches.is_present("remove") { + setup::intellij::remove_rustc_src(); + } else { + setup::intellij::setup_rustc_src( + matches + .value_of("rustc-repo-path") + .expect("this field is mandatory and therefore always valid"), + ); + } + }, + ("git-hook", Some(matches)) => { + if matches.is_present("remove") { + setup::git_hook::remove_hook(); + } else { + setup::git_hook::install_hook(matches.is_present("force-override")); + } + }, + ("vscode-tasks", Some(matches)) => { + if matches.is_present("remove") { + setup::vscode::remove_tasks(); + } else { + setup::vscode::install_tasks(matches.is_present("force-override")); + } + }, _ => {}, }, ("remove", Some(sub_command)) => match sub_command.subcommand() { @@ -168,12 +186,19 @@ fn get_clap_config<'a>() -> ArgMatches<'a> { SubCommand::with_name("intellij") .about("Alter dependencies so Intellij Rust can find rustc internals") .arg( + Arg::with_name("remove") + .long("remove") + .help("Remove the dependencies added with 'cargo dev setup intellij'") + .required(false), + ) + .arg( Arg::with_name("rustc-repo-path") .long("repo-path") .short("r") .help("The path to a rustc repo that will be used for setting the dependencies") .takes_value(true) .value_name("path") + .conflicts_with("remove") .required(true), ), ) @@ -181,6 +206,12 @@ fn get_clap_config<'a>() -> ArgMatches<'a> { SubCommand::with_name("git-hook") .about("Add a pre-commit git hook that formats your code to make it look pretty") .arg( + Arg::with_name("remove") + .long("remove") + .help("Remove the pre-commit hook added with 'cargo dev setup git-hook'") + .required(false), + ) + .arg( Arg::with_name("force-override") .long("force-override") .short("f") @@ -192,6 +223,12 @@ fn get_clap_config<'a>() -> ArgMatches<'a> { SubCommand::with_name("vscode-tasks") .about("Add several tasks to vscode for formatting, validation and testing") .arg( + Arg::with_name("remove") + .long("remove") + .help("Remove the tasks added with 'cargo dev setup vscode-tasks'") + .required(false), + ) + .arg( Arg::with_name("force-override") .long("force-override") .short("f") |
