Merge branch 'tools-report-unknown-parameters'

This commit is contained in:
Horst Schirmeier
2014-10-01 13:58:57 +02:00
8 changed files with 67 additions and 21 deletions

View File

@ -35,7 +35,8 @@ int main(int argc, char *argv[]) {
cmd.add_args(argv[i]);
}
cmd.addOption("", "", Arg::None, "USAGE: prune-trace [options]");
CommandLine::option_handle UNKNOWN =
cmd.addOption("", "", Arg::None, "USAGE: prune-trace [options]");
CommandLine::option_handle HELP = cmd.addOption("h", "help", Arg::None, "-h,--help \tPrint usage and exit");
Database::cmdline_setup();
@ -92,9 +93,15 @@ int main(int argc, char *argv[]) {
// reparse all arguments.
cmd.parse();
if (cmd[HELP]) {
if (cmd[HELP] || cmd[UNKNOWN] || cmd.parser()->nonOptionsCount() > 0) {
for (option::Option* opt = cmd[UNKNOWN]; opt; opt = opt->next()) {
std::cerr << "Unknown option: " << opt->name << "\n";
}
for (int i = 0; i < cmd.parser()->nonOptionsCount(); ++i) {
std::cerr << "Unknown non-option: " << cmd.parser()->nonOption(i) << "\n";
}
cmd.printUsage();
exit(0);
exit(!cmd[HELP]);
}
Database *db = Database::cmdline_connect();