about summary refs log tree commit diff
path: root/clippy_dev/src
diff options
context:
space:
mode:
authorYoav Lavi <yoavlavi122@gmail.com>2022-04-08 15:02:49 +0200
committerYoav Lavi <yoavlavi122@gmail.com>2022-04-09 16:50:10 +0200
commitffde78b4564301888fcb4d5b970d8e9475bd33e9 (patch)
treecacc631fb6722fd93c35c8fab9f60b90f8cec9f5 /clippy_dev/src
parenta63308be0a66fe34aa1ccefef76fa6a0bc50d2a3 (diff)
downloadrust-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.rs51
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")