int main(int argc, char *argv[]) { FILE *fpOut=NULL; int traceLevel; ATerm bottom; ATinit(argc,argv,&bottom); switch(parseArgs(argc, argv,&fpOut,&traceLevel)) { case ERR_ARGS: doHelp(argv[0]); exit(EXIT_ERR_ARGS); break; case ERR_FILE: exit(EXIT_ERR_FILE); break; case CMD_HELP: doHelp(argv[0]); exit(EXIT_OK); break; case CMD_VERSION: doVersion(argv[0]); exit(EXIT_OK); case CMD_CONVERT: exit(doConvert(fpOut, traceLevel)); break; default: exit(EXIT_OK); } } /* main */
void TCParser::_parseVersion(const std::vector<std::string> &args) { if (args.size() != 1) { _parserError(tcrec_cmd_version, "Bad version argument"); return; } doVersion(args[0]); }
int main(int argc, char **argv){ // Interpret the command-lin arguments and decide if they make sense int status = parseArgs(argc, argv, &prefs); printf(COPYRIGHT); setLogLevel(LOG_INFO); if (status == FAIL){ // The command-line was duff... if (prefs.errorMsg != NULL){ // ...and we have a specific error to show the user printf("Error: %s\n", prefs.errorMsg); } else { // ...and we have no specific error message, so show a vague one printf("BitMeter did not understand. "); } printf("Use the '-h' option to display help.\n"); } else if (prefs.help){ // Dump the help info and stop doHelp(); } else if (prefs.version){ // Show the version and stop doVersion(); } else { // We will need to go to the database if we end up here openDb(); dbVersionCheck(); switch(prefs.mode){ case PREF_MODE_DUMP: doDump(); break; case PREF_MODE_SUMMARY: doSummary(); break; case PREF_MODE_MONITOR: doMonitor(); break; case PREF_MODE_QUERY: doQuery(); break; default: assert(FALSE); // Any other mode value should cause parseArgs to fail break; } closeDb(); } return 0; }
///////////////////// /// \brief doArgs /// \param arguments /// \param stream /// \param getLogFile /// \return /// QString doArgs(const QStringList& arguments, QTextStream &stream, bool *getLogFile) { QString arg; for (int n = 1; n < arguments.count(); ++n) { arg = arguments.at(n); if ((arg == QLatin1String("-h")) || (arg == QLatin1String("-help")) || (arg == QLatin1String("--help"))) { doHelp(stream); exit(0); } else if ((arg == QLatin1String("-v")) || (arg == QLatin1String("-version")) || (arg == QLatin1String("--version"))) { doVersion(stream); exit(0); } else if ((arg == QLatin1String("-d")) || (arg == QLatin1String("-debug")) || (arg == QLatin1String("--debug"))) { *getLogFile = true; } // else if ((arg == QLatin1String("-l")) // || (arg == QLatin1String("-lang")) // || (arg == QLatin1String("--lang"))) // { // doLocale(stream); // } else if (arg[0] == QLatin1Char('-')) { // no other valid options stream << QObject::tr("Invalid parameter \"%1\"\n") .arg(arg); doHelp(stream); exit(1); } else { // it must be a filename return arg; } } return Defs::DEFAULT_PROJECT_FILENAME; }
void doHelp(){ doVersion(); printf(helpTxt); }