]> git.ipfire.org Git - thirdparty/shadow.git/commitdiff
* src/pwck.c, man/pwck.8.xml: Add support for long options.
authornekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Sun, 6 Nov 2011 18:39:36 +0000 (18:39 +0000)
committernekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Sun, 6 Nov 2011 18:39:36 +0000 (18:39 +0000)
* src/pwck.c, man/pwck.8.xml: Add -h/--help option
* src/grpck.c, man/grpck.8.xml: Add support for long options.
* src/grpck.c, man/grpck.8.xml: Add -h/--help option

ChangeLog
man/grpck.8.xml
man/pwck.8.xml
src/grpck.c
src/pwck.c

index 5884dd7eb7c9df576a468c0d96b04b1bc7ef034b..86784c5c71179c32dc042880111ac471d42c8d8f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2011-10-31  Nicolas François  <nicolas.francois@centraliens.net>
+
+       * src/pwck.c, man/pwck.8.xml: Add support for long options.
+       * src/pwck.c, man/pwck.8.xml: Add -h/--help option
+       * src/grpck.c, man/grpck.8.xml: Add support for long options.
+       * src/grpck.c, man/grpck.8.xml: Add -h/--help option
+
 2011-10-30  Nicolas François  <nicolas.francois@centraliens.net>
 
        * src/expiry.c, man/expiry.1.xml: Add support for long options.
index 75e029c6e2db7710175fa175e7b8c399cc8d16d8..eb6355a3313685b41c83ea05ca930022584f285b 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
    Copyright (c) 1992 - 1993, Julianne Frances Haugh
-   Copyright (c) 2007 - 2009, Nicolas François
+   Copyright (c) 2007 - 2011, Nicolas François
    All rights reserved.
   
    Redistribution and use in source and binary forms, with or without
 
   <refsynopsisdiv id='synopsis'>
     <cmdsynopsis>
-      <command>grpck</command>    <arg choice='opt'>-r </arg>
-      <arg choice='opt'>
-       <arg choice='plain'><replaceable>group</replaceable></arg>
-       <arg choice='opt' condition="gshadow">
-         <arg choice='plain'><replaceable>shadow</replaceable></arg>
-       </arg>
-      </arg>
-    </cmdsynopsis>
-    <cmdsynopsis>
-      <command>grpck</command>    <arg choice='opt'>-s </arg>
+      <command>grpck</command>
+      <arg choice='opt'>options</arg>
       <arg choice='opt'>
        <arg choice='plain'><replaceable>group</replaceable></arg>
        <arg choice='opt' condition="gshadow">
 
   <refsect1 id='options'>
     <title>OPTIONS</title>
+    <para>
+      The <option>-r</option> and <option>-s</option> options cannot be
+      combined.
+    </para>
     <para>
       The options which apply to the <command>grpck</command> command are:
     </para>
     <variablelist remap='IP'>
       <varlistentry>
-       <term><option>-r</option></term>
+       <term><option>-h</option>, <option>--help</option></term>
+       <listitem>
+         <para>Display help message and exit.</para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term><option>-r</option>, <option>--read-only</option></term>
        <listitem>
          <para>
            Execute the <command>grpck</command> command in read-only mode.
        </listitem>
       </varlistentry>
       <varlistentry>
-       <term><option>-s</option></term>
+       <term><option>-s</option>, <option>--sort</option></term>
        <listitem>
          <para>
            Sort entries in <filename>/etc/group</filename>
index 6b037d2bb8b302e1c1f75baa22a0191287c99227..bf617674a7cb3ec11c805bcccb7bcae13d5668a5 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
    Copyright (c) 1992       , Julianne Frances Haugh
-   Copyright (c) 2007 - 2009, Nicolas François
+   Copyright (c) 2007 - 2011, Nicolas François
    All rights reserved.
   
    Redistribution and use in source and binary forms, with or without
@@ -55,8 +55,7 @@
   <refsynopsisdiv id='synopsis'>
     <cmdsynopsis>
       <command>pwck</command>
-      <arg choice='opt'>-q </arg>
-      <arg choice='opt'>-s </arg>
+      <arg choice='opt'>options</arg>
       <arg choice='opt'>
        <arg choice='plain'>
          <replaceable>passwd</replaceable>
        </arg>
       </arg>
     </cmdsynopsis>
-    <cmdsynopsis>
-      <command>pwck</command>
-      <arg choice='opt'>-q </arg>
-      <arg choice='opt'>-r </arg>
-      <arg choice='opt'>
-       <arg choice='plain'>
-         <replaceable>passwd</replaceable>
-       </arg>
-       <arg choice='opt'>
-       <arg choice='plain'>
-         <replaceable>shadow</replaceable>
-       </arg>
-       </arg>
-      </arg>
-    </cmdsynopsis>
   </refsynopsisdiv>
 
   <refsect1 id='description'>
 
   <refsect1 id='options'>
     <title>OPTIONS</title>
+    <para>
+      The <option>-r</option> and <option>-s</option> options cannot be
+      combined.
+    </para>
     <para>
       The options which apply to the <command>pwck</command> command are:
     </para>
     <variablelist remap='IP'>
       <varlistentry>
-       <term>
-         <option>-q</option>
-       </term>
+       <term><option>-h</option>, <option>--help</option></term>
+       <listitem>
+         <para>Display help message and exit.</para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term><option>-q</option>, <option>--quiet</option></term>
        <listitem>
          <para>
            Report errors only. The warnings which do not require any
        </listitem>
       </varlistentry>
       <varlistentry>
-       <term>
-         <option>-r</option>
-       </term>
+       <term><option>-r</option>, <option>--read-only</option></term>
        <listitem>
          <para>
            Execute the <command>pwck</command> command in read-only mode.
        </listitem>
       </varlistentry>
       <varlistentry>
-       <term>
-         <option>-s</option>
-       </term>
+       <term><option>-s</option>, <option>--sort</option></term>
        <listitem>
          <para>
            Sort entries in <filename>/etc/passwd</filename> and
index 93f35dd42a3970c88f27c9fcdecd80da92f391fe..ee306b47b7ac39c08642ea30afa5d7f7f9a5a45e 100644 (file)
@@ -39,6 +39,7 @@
 #include <grp.h>
 #include <pwd.h>
 #include <stdio.h>
+#include <getopt.h>
 #include "chkname.h"
 #include "commonio.h"
 #include "defines.h"
@@ -55,6 +56,7 @@
  */
 /*@-exitarg@*/
 #define        E_OKAY          0
+#define        E_SUCCESS       0
 #define        E_USAGE         1
 #define        E_BAD_ENTRY     2
 #define        E_CANT_OPEN     3
@@ -82,7 +84,7 @@ static bool sort_mode = false;
 
 /* local function prototypes */
 static void fail_exit (int status);
-static void usage (void);
+static /*@noreturn@*/void usage (int status);
 static void delete_member (char **, const char *);
 static void process_flags (int argc, char **argv);
 static void open_files (void);
@@ -134,14 +136,28 @@ static void fail_exit (int status)
 /*
  * usage - print syntax message and exit
  */
-static void usage (void)
+static /*@noreturn@*/void usage (int status)
 {
+       FILE *usageout = (E_SUCCESS != status) ? stderr : stdout;
 #ifdef SHADOWGRP
-       fprintf (stderr, _("Usage: %s [-r] [-s] [group [gshadow]]\n"), Prog);
-#else
-       fprintf (stderr, _("Usage: %s [-r] [-s] [group]\n"), Prog);
-#endif
-       exit (E_USAGE);
+       (void) fprintf (usageout,
+                       _("Usage: %s [options] [group [gshadow]]\n"
+                         "\n"
+                         "Options:\n"),
+                       Prog);
+#else                          /* !SHADOWGRP */
+       (void) fprintf (usageout,
+                       _("Usage: %s [options] [group]\n"
+                         "\n"
+                         "Options:\n"),
+                       Prog);
+#endif                         /* !SHADOWGRP */
+       (void) fputs (_("  -h, --help                    display this help message and exit\n"), usageout);
+       (void) fputs (_("  -r, --read-only               display errors and warnings\n"
+                       "                                but do not change files\n"), usageout);
+       (void) fputs (_("  -s, --sort                    sort entries by UID\n"), usageout);
+       (void) fputs ("\n", usageout);
+       exit (status);
 }
 
 /*
@@ -173,13 +189,24 @@ static void delete_member (char **list, const char *member)
  */
 static void process_flags (int argc, char **argv)
 {
-       int arg;
+       int c;
+       static struct option long_options[] = {
+               {"help",      no_argument, NULL, 'h'},
+               {"quiet",     no_argument, NULL, 'q'},
+               {"read-only", no_argument, NULL, 'r'},
+               {"sort",      no_argument, NULL, 's'},
+               {NULL, 0, NULL, '\0'}
+       };
 
        /*
         * Parse the command line arguments
         */
-       while ((arg = getopt (argc, argv, "qrs")) != EOF) {
-               switch (arg) {
+       while ((c = getopt_long (argc, argv, "hqrs",
+                                long_options, NULL)) != -1) {
+               switch (c) {
+               case 'h':
+                       usage (E_SUCCESS);
+                       /*@notreached@*/break;
                case 'q':
                        /* quiet - ignored for now */
                        break;
@@ -190,12 +217,12 @@ static void process_flags (int argc, char **argv)
                        sort_mode = true;
                        break;
                default:
-                       usage ();
+                       usage (E_USAGE);
                }
        }
 
        if (sort_mode && read_only) {
-               fprintf (stderr, _("%s: -s and -r are incompatibile\n"), Prog);
+               fprintf (stderr, _("%s: -s and -r are incompatible\n"), Prog);
                exit (E_USAGE);
        }
 
@@ -208,7 +235,7 @@ static void process_flags (int argc, char **argv)
        if (argc > (optind + 1))
 #endif
        {
-               usage ();
+               usage (E_USAGE);
        }
 
        /*
index fe0e84acb1725f1a46508c14a2a9b3989f1be618..c70edc0a648101a051199c87ca27f529652e46e4 100644 (file)
@@ -3,7 +3,7 @@
  * Copyright (c) 1996 - 2000, Marek Michałkiewicz
  * Copyright (c) 2001       , Michał Moskal
  * Copyright (c) 2001 - 2006, Tomasz Kłoczko
- * Copyright (c) 2007 - 2010, Nicolas François
+ * Copyright (c) 2007 - 2011, Nicolas François
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -39,6 +39,7 @@
 #include <grp.h>
 #include <pwd.h>
 #include <stdio.h>
+#include <getopt.h>
 #include "chkname.h"
 #include "commonio.h"
 #include "defines.h"
@@ -56,6 +57,7 @@
  */
 /*@-exitarg@*/
 #define        E_OKAY          0
+#define        E_SUCCESS       0
 #define        E_USAGE         1
 #define        E_BADENTRY      2
 #define        E_CANTOPEN      3
@@ -86,7 +88,7 @@ static bool quiet = false;            /* don't report warnings, only errors */
 
 /* local function prototypes */
 static void fail_exit (int code);
-static void usage (void);
+static /*@noreturn@*/void usage (int status);
 static void process_flags (int argc, char **argv);
 static void open_files (void);
 static void close_files (bool changed);
@@ -127,20 +129,37 @@ static void fail_exit (int code)
 /*
  * usage - print syntax message and exit
  */
-static void usage (void)
+static /*@noreturn@*/void usage (int status)
 {
+       FILE *usageout = (E_SUCCESS != status) ? stderr : stdout;
 #ifdef WITH_TCB
        if (getdef_bool ("USE_TCB")) {
-               fprintf (stderr, _("Usage: %s [-q] [-r] [passwd]\n"),
-                        Prog);
+               (void) fprintf (usageout,
+                               _("Usage: %s [options] [passwd]\n"
+                                 "\n"
+                                 "Options:\n"),
+                               Prog);
        } else
 #endif                         /* WITH_TCB */
        {
-               fprintf (stderr,
-                        _("Usage: %s [-q] [-r] [-s] [passwd [shadow]]\n"),
-                        Prog);
+               (void) fprintf (usageout,
+                               _("Usage: %s [options] [passwd [shadow]]\n"
+                                 "\n"
+                                 "Options:\n"),
+                               Prog);
        }
-       exit (E_USAGE);
+       (void) fputs (_("  -h, --help                    display this help message and exit\n"), usageout);
+       (void) fputs (_("  -q, --quiet                   report errors only\n"), usageout);
+       (void) fputs (_("  -r, --read-only               display errors and warnings\n"
+                       "                                but do not change files\n"), usageout);
+#ifdef WITH_TCB
+       if (!getdef_bool ("USE_TCB")) {
+#endif                         /* !WITH_TCB */
+       {
+               (void) fputs (_("  -s, --sort                    sort entries by UID\n"), usageout);
+       }
+       (void) fputs ("\n", usageout);
+       exit (status);
 }
 
 /*
@@ -150,13 +169,24 @@ static void usage (void)
  */
 static void process_flags (int argc, char **argv)
 {
-       int arg;
+       int c;
+       static struct option long_options[] = {
+               {"help",      no_argument, NULL, 'h'},
+               {"quiet",     no_argument, NULL, 'q'},
+               {"read-only", no_argument, NULL, 'r'},
+               {"sort",      no_argument, NULL, 's'},
+               {NULL, 0, NULL, '\0'}
+       };
 
        /*
         * Parse the command line arguments
         */
-       while ((arg = getopt (argc, argv, "eqrs")) != EOF) {
-               switch (arg) {
+       while ((c = getopt_long (argc, argv, "ehqrs",
+                                long_options, NULL)) != -1) {
+               switch (c) {
+               case 'h':
+                       usage (E_SUCCESS);
+                       /*@notreached@*/break;
                case 'e':       /* added for Debian shadow-961025-2 compatibility */
                case 'q':
                        quiet = true;
@@ -168,7 +198,7 @@ static void process_flags (int argc, char **argv)
                        sort_mode = true;
                        break;
                default:
-                       usage ();
+                       usage (E_USAGE);
                }
        }
 
@@ -181,7 +211,7 @@ static void process_flags (int argc, char **argv)
         * Make certain we have the right number of arguments
         */
        if ((argc < optind) || (argc > (optind + 2))) {
-               usage ();
+               usage (E_USAGE);
        }
 
        /*
@@ -198,7 +228,7 @@ static void process_flags (int argc, char **argv)
                        fprintf (stderr,
                                 _("%s: no alternative shadow file allowed when USE_TCB is enabled.\n"),
                                 Prog);
-                       usage ();
+                       usage (E_USAGE);
                }
 #endif                         /* WITH_TCB */
                spw_setdbname (argv[optind + 1]);