summaryrefslogtreecommitdiff
path: root/src/analyze/analyze.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2014-08-20 00:15:05 +0200
committerLennart Poettering <lennart@poettering.net>2014-08-20 00:18:14 +0200
commitdad29dff1925a114e20d4eb7b47fca23c4f25fd7 (patch)
treee48b3cec55288b8fced0cf6076ac86e487011f58 /src/analyze/analyze.c
parentf9ffbca2fb1ba7a7854d83439a4644590be0d9e1 (diff)
cmdline: for new tools avoid introduce new negative switches, and properly align --help texts
Negative switches are a bad un-normalized thing. We alerady have some, but we should try harder to avoid intrdoucing new ones. Hence, instead of adding two switches: --foobar --no-foobar Let's instead use the syntax --foobar --foobar=yes --foobar=no Where the first two are equivalent. The boolean argument is parsed following the usual rules. Change all new negative switches this way. This patch also properly aligns the --help table, so that single char switches always get a column separate of the long switches.
Diffstat (limited to 'src/analyze/analyze.c')
-rw-r--r--src/analyze/analyze.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/analyze/analyze.c b/src/analyze/analyze.c
index b8b47ed396..d860a022b7 100644
--- a/src/analyze/analyze.c
+++ b/src/analyze/analyze.c
@@ -1202,7 +1202,7 @@ static void help(void) {
" services, which finished TIMESPAN earlier, than the\n"
" latest in the branch. The unit of TIMESPAN is seconds\n"
" unless specified with a different unit, i.e. 50ms\n"
- " --no-man Do not check for existence of man pages\n\n"
+ " --man[=BOOL] Do [not] check for existence of man pages\n\n"
"Commands:\n"
" time Print time spent in the kernel before reaching userspace\n"
" blame Print list of running units ordered by time to init\n"
@@ -1230,7 +1230,7 @@ static int parse_argv(int argc, char *argv[]) {
ARG_DOT_TO_PATTERN,
ARG_FUZZ,
ARG_NO_PAGER,
- ARG_NO_MAN,
+ ARG_MAN,
};
static const struct option options[] = {
@@ -1244,7 +1244,7 @@ static int parse_argv(int argc, char *argv[]) {
{ "to-pattern", required_argument, NULL, ARG_DOT_TO_PATTERN },
{ "fuzz", required_argument, NULL, ARG_FUZZ },
{ "no-pager", no_argument, NULL, ARG_NO_PAGER },
- { "no-man", no_argument, NULL, ARG_NO_MAN },
+ { "man", optional_argument, NULL, ARG_MAN },
{ "host", required_argument, NULL, 'H' },
{ "machine", required_argument, NULL, 'M' },
{}
@@ -1315,8 +1315,18 @@ static int parse_argv(int argc, char *argv[]) {
arg_host = optarg;
break;
- case ARG_NO_MAN:
- arg_man = false;
+ case ARG_MAN:
+ if (optarg) {
+ r = parse_boolean(optarg);
+ if (r < 0) {
+ log_error("Failed to parse --man= argument.");
+ return -EINVAL;
+ }
+
+ arg_man = !!r;
+ } else
+ arg_man = true;
+
break;
case '?':