summaryrefslogtreecommitdiffstats
path: root/main.cxx
diff options
context:
space:
mode:
authordsmith <dsmith>2006-06-02 15:54:26 +0000
committerdsmith <dsmith>2006-06-02 15:54:26 +0000
commit277c1957c614aa4c56a5e192e893471e3a964cc4 (patch)
tree3a81e58bc53afddd7c1c98035a988a2d024a2843 /main.cxx
parent3b308385ab9aa306eabac5fa6b67ef9e17106e98 (diff)
downloadsystemtap-steved-277c1957c614aa4c56a5e192e893471e3a964cc4.tar.gz
systemtap-steved-277c1957c614aa4c56a5e192e893471e3a964cc4.tar.xz
systemtap-steved-277c1957c614aa4c56a5e192e893471e3a964cc4.zip
2006-06-02 David Smith <dsmith@redhat.com>
* 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.
Diffstat (limited to 'main.cxx')
-rw-r--r--main.cxx33
1 files changed, 22 insertions, 11 deletions
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." <<endl;
- exit(1);
+ usage (s, 1);
}
if(!s.output_file.empty() && s.bulk_mode && !s.merge)
{
cerr << "You can't specify -M, -b and -o options together." <<endl;
- exit(1);
+ usage (s, 1);
}
for (int i = optind; i < argc; i++)
@@ -278,7 +286,10 @@ main (int argc, char * const argv [])
// need a user file
if (! have_script)
- usage(s);
+ {
+ cerr << "A script must be specified." << endl;
+ usage(s, 1);
+ }
int rc = 0;