]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
uuidd: set options to be mutually exclusive
authorSami Kerola <kerolasa@iki.fi>
Sat, 24 May 2014 16:58:05 +0000 (17:58 +0100)
committerSami Kerola <kerolasa@iki.fi>
Mon, 26 May 2014 15:42:40 +0000 (16:42 +0100)
--pid     || --no-pid
--debug   || --quiet
--random  || --time

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
misc-utils/uuidd.c

index 57309193fa3c0c63f1dff369c01fa6bb3fac9d6e..f72c45281ea13c8757d40a9440e7b62e83a01074 100644 (file)
@@ -37,6 +37,7 @@ extern int optind;
 #include "c.h"
 #include "closestream.h"
 #include "strutils.h"
+#include "optutils.h"
 
 #ifdef HAVE_LIBSYSTEMD
 # include <systemd/sd-daemon.h>
@@ -510,6 +511,13 @@ int main(int argc, char **argv)
                {"help", no_argument, NULL, 'h'},
                {NULL, 0, NULL, 0}
        };
+       static const ul_excl_t excl[] = {
+               { 'P', 'p' },
+               { 'd', 'q' },
+               { 'r', 't' },
+               { 0 }
+       };
+       int excl_st[ARRAY_SIZE(excl)] = UL_EXCL_STATUS_INIT;
 
        setlocale(LC_ALL, "");
        bindtextdomain(PACKAGE, LOCALEDIR);
@@ -519,6 +527,7 @@ int main(int argc, char **argv)
        while ((c =
                getopt_long(argc, argv, "p:s:T:krtn:PFSdqVh", longopts,
                            NULL)) != -1) {
+               err_exclusive_options(c, longopts, excl, excl_st);
                switch (c) {
                case 'd':
                        uuidd_cxt.debug = 1;
@@ -576,9 +585,6 @@ int main(int argc, char **argv)
                }
        }
 
-       if (no_pid && pidfile_path_param && !uuidd_cxt.quiet)
-               warnx(_("Both --pid and --no-pid specified. Ignoring --no-pid."));
-
        if (!no_pid && !pidfile_path_param)
                pidfile_path = UUIDD_PIDFILE_PATH;
        else if (pidfile_path_param)