* 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
This commit is contained in:
nekral-guest 2011-11-06 18:39:36 +00:00
parent b9163f6348
commit 900943192f
5 changed files with 122 additions and 68 deletions

View File

@ -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.

View 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
@ -49,16 +49,8 @@
<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">
@ -134,12 +126,22 @@
<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.
@ -149,7 +151,7 @@
</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>

View 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>
@ -68,21 +67,6 @@
</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'>
@ -171,14 +155,22 @@
<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
@ -187,9 +179,7 @@
</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.
@ -197,9 +187,7 @@
</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

View 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);
}
/*

View 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]);