summaryrefslogtreecommitdiffstats
path: root/main.cxx
diff options
context:
space:
mode:
authorDave Brolley <brolley@redhat.com>2009-04-27 11:56:15 -0400
committerDave Brolley <brolley@redhat.com>2009-04-27 11:56:15 -0400
commite84f20287ae21b31c3505dfd0a81176687ad1ec5 (patch)
tree956005556406fc93e4444ee0d425aafed8e241d0 /main.cxx
parentfb6d28283bd7ea63364a008d32c53687a694642f (diff)
parent097e4a5b397b9e826453e01caa1f8169886128c5 (diff)
downloadsystemtap-steved-e84f20287ae21b31c3505dfd0a81176687ad1ec5.tar.gz
systemtap-steved-e84f20287ae21b31c3505dfd0a81176687ad1ec5.tar.xz
systemtap-steved-e84f20287ae21b31c3505dfd0a81176687ad1ec5.zip
Merge branch 'master' of git://sources.redhat.com/git/systemtap
Conflicts: configure testsuite/configure
Diffstat (limited to 'main.cxx')
-rw-r--r--main.cxx80
1 files changed, 30 insertions, 50 deletions
diff --git a/main.cxx b/main.cxx
index 745d81e5..aecb2341 100644
--- a/main.cxx
+++ b/main.cxx
@@ -328,6 +328,34 @@ setup_signals (sighandler_t handler)
sigaction (SIGTERM, &sa, NULL);
}
+void
+setup_kernel_release (systemtap_session &s, const char* kstr) {
+ if (kstr[0] == '/') // fully specified path
+ {
+ s.kernel_build_tree = kstr;
+ string version_file_name = s.kernel_build_tree + "/include/config/kernel.release";
+ // The file include/config/kernel.release within the
+ // build tree is used to pull out the version information
+ ifstream version_file (version_file_name.c_str());
+ if (version_file.fail ())
+ {
+ cerr << "Missing " << version_file_name << endl;
+ exit(1);
+ }
+ else
+ {
+ char c;
+ s.kernel_release = "";
+ while (version_file.get(c) && c != '\n')
+ s.kernel_release.push_back(c);
+ }
+ }
+ else
+ {
+ s.kernel_release = string (kstr);
+ s.kernel_build_tree = "/lib/modules/" + s.kernel_release + "/build";
+ }
+}
int
main (int argc, char * const argv [])
@@ -439,31 +467,7 @@ main (int argc, char * const argv [])
const char* s_kr = getenv ("SYSTEMTAP_RELEASE");
if (s_kr != NULL) {
- if (s_kr[0] == '/') // fully specified path
- {
- s.kernel_build_tree = s_kr;
- string version_file_name = s.kernel_build_tree + "/include/config/kernel.release";
- // The file include/config/kernel.release within the
- // build tree is used to pull out the version information
- ifstream version_file (version_file_name.c_str());
- if (version_file.fail ())
- {
- cerr << "Missing " << version_file_name << endl;
- exit(1);
- }
- else
- {
- char c;
- s.kernel_release = "";
- while (version_file.get(c) && c != '\n')
- s.kernel_release.push_back(c);
- }
- }
- else
- {
- s.kernel_release = string (s_kr);
- s.kernel_build_tree = "/lib/modules/" + s.kernel_release + "/build";
- }
+ setup_kernel_release(s, s_kr);
}
@@ -605,31 +609,7 @@ main (int argc, char * const argv [])
break;
case 'r':
- if (optarg[0] == '/') // fully specified path
- {
- s.kernel_build_tree = optarg;
- string version_file_name = s.kernel_build_tree + "/include/config/kernel.release";
- // The file include/config/kernel.release within the
- // build tree is used to pull out the version information
- ifstream version_file (version_file_name.c_str());
- if (version_file.fail ())
- {
- cerr << "Missing " << version_file_name << endl;
- usage (s, 1);
- }
- else
- {
- char c;
- s.kernel_release = "";
- while (version_file.get(c) && c != '\n')
- s.kernel_release.push_back(c);
- }
- }
- else
- {
- s.kernel_release = string (optarg);
- s.kernel_build_tree = "/lib/modules/" + s.kernel_release + "/build";
- }
+ setup_kernel_release(s, optarg);
break;
case 'k':