aboutsummaryrefslogtreecommitdiff
path: root/src/libmain
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2012-10-03 16:37:06 -0400
committerEelco Dolstra <eelco.dolstra@logicblox.com>2012-10-03 16:40:09 -0400
commita562d544d8520a0f113ad1a348e28ea00f27b693 (patch)
tree5e8d7200b8521aa54e2c8846ef7c31fd5dac737e /src/libmain
parent9c41c66c5b877dbb529f6147b28384a57a591895 (diff)
When ‘--help’ is given, just run ‘man’ to show the manual page
I.e. do what git does. I'm too lazy to keep the builtin help text up to date :-) Also add ‘--help’ to various commands that lacked it (e.g. nix-collect-garbage).
Diffstat (limited to 'src/libmain')
-rw-r--r--src/libmain/shared.cc9
-rw-r--r--src/libmain/shared.hh3
2 files changed, 12 insertions, 0 deletions
diff --git a/src/libmain/shared.cc b/src/libmain/shared.cc
index 5f92c3df3..f8149fc60 100644
--- a/src/libmain/shared.cc
+++ b/src/libmain/shared.cc
@@ -91,6 +91,7 @@ string getArg(const string & opt,
return *i;
}
+
/* Initialize and reorder arguments, then call the actual argument
processor. */
static void initAndRun(int argc, char * * argv)
@@ -275,6 +276,14 @@ static void * oomHandler(size_t requested)
}
+void showManPage(const string & name)
+{
+ string cmd = "man " + name;
+ if (system(cmd.c_str()) != 0)
+ throw Error(format("command `%1%' failed") % cmd);
+}
+
+
int exitCode = 0;
char * * argvSaved = 0;
diff --git a/src/libmain/shared.hh b/src/libmain/shared.hh
index c69879a12..9e5ec8360 100644
--- a/src/libmain/shared.hh
+++ b/src/libmain/shared.hh
@@ -41,6 +41,9 @@ template<class N> N getIntArg(const string & opt,
return n;
}
+/* Show the manual page for the specified program. */
+void showManPage(const string & name);
+
/* Whether we're running setuid. */
extern bool setuidMode;