summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2011-10-15 18:55:33 (GMT)
committerPeter Collingbourne <peter@pcc.me.uk>2011-10-15 19:37:11 (GMT)
commit5a7151a8a6ab989a4016f03306b020df38f21732 (patch)
tree5d370ccd781409fd459f31adfe9dd9c4989a8562 /src
parent7cf2bdffe2a95ea5e30e9c3166ef4398add8e6b9 (diff)
downloadNinja-5a7151a8a6ab989a4016f03306b020df38f21732.zip
Ninja-5a7151a8a6ab989a4016f03306b020df38f21732.tar.gz
Ninja-5a7151a8a6ab989a4016f03306b020df38f21732.tar.bz2
Make the command line interface for the clean tool consistent
Since we have started using command line flags for the clean tool, it is inconsistent to keep the "target" and "rule" prefixes. Replace them with a "-r" flag with the same semantics as "rule".
Diffstat (limited to 'src')
-rw-r--r--src/ninja.cc37
1 files changed, 15 insertions, 22 deletions
diff --git a/src/ninja.cc b/src/ninja.cc
index 5b96ca1..a058e95 100644
--- a/src/ninja.cc
+++ b/src/ninja.cc
@@ -359,14 +359,18 @@ int CmdRules(State* state, int argc, char* argv[]) {
int CmdClean(State* state, int argc, char* argv[], const BuildConfig& config) {
bool generator = false;
+ bool clean_rules = false;
optind = 1;
int opt;
- while ((opt = getopt(argc, argv, "g")) != -1) {
+ while ((opt = getopt(argc, argv, "gr")) != -1) {
switch (opt) {
case 'g':
generator = true;
break;
+ case 'r':
+ clean_rules = true;
+ break;
default:
Usage(config);
return 1;
@@ -375,29 +379,18 @@ int CmdClean(State* state, int argc, char* argv[], const BuildConfig& config) {
argv += optind;
argc -= optind;
+ if (clean_rules && argc == 0) {
+ Error("expected a rule to clean");
+ return 1;
+ }
+
Cleaner cleaner(state, config);
- if (argc >= 1)
- {
- string mode = argv[0];
- if (mode == "target") {
- if (argc >= 2) {
- return cleaner.CleanTargets(argc - 1, &argv[1]);
- } else {
- Error("expected a target to clean");
- return 1;
- }
- } else if (mode == "rule") {
- if (argc >= 2) {
- return cleaner.CleanRules(argc - 1, &argv[1]);
- } else {
- Error("expected a rule to clean");
- return 1;
- }
- } else {
+ if (argc >= 1) {
+ if (clean_rules)
+ return cleaner.CleanRules(argc, argv);
+ else
return cleaner.CleanTargets(argc, argv);
- }
- }
- else {
+ } else {
return cleaner.CleanAll(generator);
}
}