diff options
author | Kay Sievers <kay.sievers@suse.de> | 2006-09-08 11:27:03 +0200 |
---|---|---|
committer | Kay Sievers <kay.sievers@suse.de> | 2006-09-08 11:27:03 +0200 |
commit | b52a01ee39dad3b04aaa7e3af7435f062d3e887f (patch) | |
tree | 8a86cb779cdeb83619ee8b40fe96bad50e5d3b47 | |
parent | adc8e4b91ef4719489b4d9b2b2b298166674ffbb (diff) |
udevd: use getopt_long()
-rw-r--r-- | udevd.8 | 5 | ||||
-rw-r--r-- | udevd.c | 27 | ||||
-rw-r--r-- | udevd.xml | 7 |
3 files changed, 30 insertions, 9 deletions
@@ -14,7 +14,7 @@ udevd \- event managing daemon .SH "SYNOPSIS" .HP 6 -\fBudevd\fR [\fB\-\-daemon\fR] +\fBudevd\fR [\fB\-\-daemon\fR] [\fB\-\-help\fR] .HP 20 \fBudevcontrol \fR\fB\fIcommand\fR\fR .SH "DESCRIPTION" @@ -25,6 +25,9 @@ udevd listens to kernel uevents and passes the incoming events to udev. It ensur \fB\-\-daemon\fR Detach and run in the background. .TP 3n +\fB\-\-help\fR +Print usage. +.TP 3n \fBlog_priority=\fR\fB\fIvalue\fR\fR udevcontrol can dynamically set the log level of udevd. Valid values are the numerical syslog priorities or their textual representations: \fBerr\fR, @@ -29,6 +29,7 @@ #include <fcntl.h> #include <syslog.h> #include <time.h> +#include <getopt.h> #include <sys/select.h> #include <sys/wait.h> #include <sys/types.h> @@ -76,6 +77,7 @@ void log_message(int priority, const char *format, ...) vsyslog(priority, format, args); va_end(args); } + #endif static void asmlinkage udev_event_sig_handler(int signum) @@ -916,7 +918,12 @@ int main(int argc, char *argv[], char *envp[]) fd_set readfds; const char *value; int daemonize = 0; - int i; + int option; + static const struct option options[] = { + { "daemon", 0, NULL, 'd' }, + { "help", 0, NULL, 'h' }, + {} + }; int rc = 1; int maxfd; @@ -926,16 +933,20 @@ int main(int argc, char *argv[], char *envp[]) dbg("version %s", UDEV_VERSION); /* parse commandline options */ - for (i = 1 ; i < argc; i++) { - char *arg = argv[i]; - if (strcmp(arg, "--daemon") == 0 || strcmp(arg, "-d") == 0) + while (1) { + option = getopt_long(argc, argv, "dtvh", options, NULL); + if (option == -1) + break; + + switch (option) { + case 'd': daemonize = 1; - else if (strcmp(arg, "--help") == 0 || strcmp(arg, "-h") == 0) { + break; + case 'h': printf("Usage: udevd [--help] [--daemon]\n"); goto exit; - } else { - fprintf(stderr, "unrecognized option '%s'\n", arg); - err("unrecognized option '%s'\n", arg); + default: + goto exit; } } @@ -26,6 +26,7 @@ <cmdsynopsis> <command>udevd</command> <arg><option>--daemon</option></arg> + <arg><option>--help</option></arg> </cmdsynopsis> <cmdsynopsis> <command>udevcontrol <replaceable>command</replaceable></command> @@ -47,6 +48,12 @@ </listitem> </varlistentry> <varlistentry> + <term><option>--help</option></term> + <listitem> + <para>Print usage.</para> + </listitem> + </varlistentry> + <varlistentry> <term><option>log_priority=<replaceable>value</replaceable></option></term> <listitem> <para>udevcontrol can dynamically set the log level of udevd. |