diff options
author | Peter Collingbourne <peter@pcc.me.uk> | 2011-10-15 18:55:33 (GMT) |
---|---|---|
committer | Peter Collingbourne <peter@pcc.me.uk> | 2011-10-15 19:37:11 (GMT) |
commit | 5a7151a8a6ab989a4016f03306b020df38f21732 (patch) | |
tree | 5d370ccd781409fd459f31adfe9dd9c4989a8562 /src | |
parent | 7cf2bdffe2a95ea5e30e9c3166ef4398add8e6b9 (diff) | |
download | Ninja-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.cc | 37 |
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); } } |