From 277c1957c614aa4c56a5e192e893471e3a964cc4 Mon Sep 17 00:00:00 2001 From: dsmith Date: Fri, 2 Jun 2006 15:54:26 +0000 Subject: 2006-06-02 David Smith * main.cxx (usage): Added exitcode parameter. (main): Improved a few error messages. Also, when an error is given, stap now always exits with a status of 1. * testsuite/buildok/cmdline01.stp: New test. * testsuite/parseko/cmdline01.stp: Ditto. * testsuite/parseko/cmdline02.stp: Ditto. * testsuite/parseko/cmdline03.stp: Ditto. * testsuite/parseko/cmdline04.stp: Ditto. * testsuite/parseko/cmdline05.stp: Ditto. * testsuite/parseko/cmdline06.stp: Ditto. * testsuite/parseok/cmdline01.stp: Ditto. * testsuite/parseok/cmdline02.stp: Ditto. --- main.cxx | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) (limited to 'main.cxx') diff --git a/main.cxx b/main.cxx index 95a1cfaa..46b8701a 100644 --- a/main.cxx +++ b/main.cxx @@ -46,7 +46,7 @@ version () } void -usage (systemtap_session& s) +usage (systemtap_session& s, int exitcode) { version (); clog @@ -96,7 +96,7 @@ usage (systemtap_session& s) ; // -d: dump safety-related external references - exit (0); + exit (exitcode); } @@ -178,8 +178,8 @@ main (int argc, char * const argv []) s.last_pass = atoi (optarg); if (s.last_pass < 1 || s.last_pass > 5) { - cerr << "Invalid pass number." << endl; - usage (s); + cerr << "Invalid pass number (should be 1-5)." << endl; + usage (s, 1); } break; @@ -189,7 +189,11 @@ main (int argc, char * const argv []) case 'e': if (have_script) - usage (s); + { + cerr << "Only one script can be given on the command line." + << endl; + usage (s, 1); + } cmdline_script = string (optarg); have_script = true; break; @@ -230,8 +234,8 @@ main (int argc, char * const argv []) s.buffer_size = atoi (optarg); if (s.buffer_size < 1 || s.buffer_size > 64) { - cerr << "Invalid buffer size." << endl; - usage (s); + cerr << "Invalid buffer size (should be 1-64)." << endl; + usage (s, 1); } break; @@ -248,21 +252,25 @@ main (int argc, char * const argv []) break; case 'h': + usage (s, 0); + break; + default: - usage (s); + usage (s, 1); + break; } } if(!s.bulk_mode && !s.merge) { cerr << "-M option is valid only for bulk (relayfs) mode." <