Allow passing --remove to cargo dev setup <SUBCOMMAND>

add missing args

unque name not needed

more descriptive help

formatting fixes

missing quote
This commit is contained in:
Yoav Lavi
2022-04-08 15:02:49 +02:00
parent a63308be0a
commit ffde78b456

View File

@@ -36,13 +36,31 @@ fn main() {
} }
}, },
("setup", Some(sub_command)) => match sub_command.subcommand() { ("setup", Some(sub_command)) => match sub_command.subcommand() {
("intellij", Some(matches)) => setup::intellij::setup_rustc_src( ("intellij", Some(matches)) => {
matches if matches.is_present("remove") {
.value_of("rustc-repo-path") setup::intellij::remove_rustc_src();
.expect("this field is mandatory and therefore always valid"), } else {
), setup::intellij::setup_rustc_src(
("git-hook", Some(matches)) => setup::git_hook::install_hook(matches.is_present("force-override")), matches
("vscode-tasks", Some(matches)) => setup::vscode::install_tasks(matches.is_present("force-override")), .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() { ("remove", Some(sub_command)) => match sub_command.subcommand() {
@@ -167,6 +185,12 @@ fn get_clap_config<'a>() -> ArgMatches<'a> {
.subcommand( .subcommand(
SubCommand::with_name("intellij") SubCommand::with_name("intellij")
.about("Alter dependencies so Intellij Rust can find rustc internals") .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(
Arg::with_name("rustc-repo-path") Arg::with_name("rustc-repo-path")
.long("repo-path") .long("repo-path")
@@ -174,12 +198,19 @@ fn get_clap_config<'a>() -> ArgMatches<'a> {
.help("The path to a rustc repo that will be used for setting the dependencies") .help("The path to a rustc repo that will be used for setting the dependencies")
.takes_value(true) .takes_value(true)
.value_name("path") .value_name("path")
.conflicts_with("remove")
.required(true), .required(true),
), ),
) )
.subcommand( .subcommand(
SubCommand::with_name("git-hook") SubCommand::with_name("git-hook")
.about("Add a pre-commit git hook that formats your code to make it look pretty") .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(
Arg::with_name("force-override") Arg::with_name("force-override")
.long("force-override") .long("force-override")
@@ -191,6 +222,12 @@ fn get_clap_config<'a>() -> ArgMatches<'a> {
.subcommand( .subcommand(
SubCommand::with_name("vscode-tasks") SubCommand::with_name("vscode-tasks")
.about("Add several tasks to vscode for formatting, validation and testing") .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(
Arg::with_name("force-override") Arg::with_name("force-override")
.long("force-override") .long("force-override")