[showmount] implement long options

add long options support to showmount. Where mappings exist use the GNU
names for said options.

Differential Revision:	https://reviews.freebsd.org/D22543
Reviewed by:		kevans (earlier version)
This commit is contained in:
eadler 2019-12-12 05:11:53 +00:00
parent 13fd6719e7
commit 88521dc5d5
2 changed files with 14 additions and 5 deletions

View File

@ -67,20 +67,20 @@ for a detailed description of the protocol.
.Pp
The following options are available:
.Bl -tag -width indent
.It Fl a
.It Fl a , Fl -all
List all mount points in the form:
.Bd -ragged -offset indent -compact
.Ar host : Ns Ar dirpath .
.Ed
.It Fl d
.It Fl d , Fl -directories
List directory paths of mount points instead of hosts.
.It Fl E
.It Fl E , Fl -exports-script
Show the
.Ar host Ns 's
exports list in a script-friendly format.
Client addresses and the header are not shown, and special
characters are escaped.
.It Fl e
.It Fl e , Fl -exports
Show the
.Ar host Ns 's
exports list.

View File

@ -53,6 +53,7 @@ static const char rcsid[] =
#include <sys/socketvar.h>
#include <err.h>
#include <getopt.h>
#include <netdb.h>
#include <rpc/rpc.h>
#include <rpc/pmap_clnt.h>
@ -102,6 +103,14 @@ int xdr_exportslist(XDR *, struct exportslist **);
int tcp_callrpc(const char *host, int prognum, int versnum, int procnum,
xdrproc_t inproc, char *in, xdrproc_t outproc, char *out);
static const struct option long_opts[] = {
{ "all", no_argument, NULL, 'a' },
{ "directories", no_argument, NULL, 'd' },
{ "exports-script", no_argument, NULL, 'E' },
{ "exports", no_argument, NULL, 'e' },
{ NULL, 0, NULL, 0 },
};
/*
* This command queries the NFS mount daemon for it's mount list and/or
* it's exports list and prints them out.
@ -119,7 +128,7 @@ main(int argc, char **argv)
const char *host;
int ch, estat, nbytes;
while ((ch = getopt(argc, argv, "adEe13")) != -1)
while ((ch = getopt_long(argc, argv, "+adEe13", long_opts, NULL)) != -1)
switch (ch) {
case 'a':
if (type == 0) {