Message ID | 20190221050925.17643-1-kdsouza@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | getcifsacl: Improve help usage and add -h option. | expand |
ср, 20 февр. 2019 г. в 21:09, Kenneth D'souza <kdsouza@redhat.com>: > > Call getcifsacl_usage only for -h and default case. > For others error out with appropriate message. > > Signed-off-by: Kenneth D'souza <kdsouza@redhat.com> > --- > getcifsacl.c | 30 ++++++++++++++++++++---------- > 1 file changed, 20 insertions(+), 10 deletions(-) > > diff --git a/getcifsacl.c b/getcifsacl.c > index 7f6e673..850a252 100644 > --- a/getcifsacl.c > +++ b/getcifsacl.c > @@ -40,6 +40,7 @@ > > static void *plugin_handle; > static bool plugin_loaded; > +static char *execname; > > static void > print_each_ace_mask(uint32_t mask) > @@ -331,6 +332,8 @@ getcifsacl_usage(const char *prog) > prog); > fprintf(stderr, "Usage: %s [option] <file_name>\n", prog); > fprintf(stderr, "Valid options:\n"); > + fprintf(stderr, "\t-h Display this help text\n"); > + fprintf(stderr, "\n"); > fprintf(stderr, "\t-v Version of the program\n"); > fprintf(stderr, "\n"); > fprintf(stderr, "\t-r Display raw values of the ACE fields\n"); > @@ -345,8 +348,15 @@ main(const int argc, char *const argv[]) > ssize_t attrlen; > size_t bufsize = BUFSIZE; > char *filename, *attrval; > + execname = basename(argv[0]); > + > + if (argc < 2) { > + fprintf(stderr, "%s: you must specify a filename.\n", execname); > + printf("Try `getcifsacl -h' for more information.\n"); > + goto out; > + } > > - while ((c = getopt_long(argc, argv, "r:v", NULL, NULL)) != -1) { > + while ((c = getopt_long(argc, argv, "rhv", NULL, NULL)) != -1) { > switch (c) { > case 'v': > printf("Version: %s\n", VERSION); > @@ -355,18 +365,18 @@ main(const int argc, char *const argv[]) > raw = true; > break; > default: > - break; > + getcifsacl_usage(execname); > + goto out; > + > } > } > > - if (raw && argc == 3) > - filename = argv[2]; > - else if (argc == 2) > - filename = argv[1]; > - else { > - getcifsacl_usage(basename(argv[0])); > - goto out; > - } > + if (optind >= argc) { > + printf("you must specify a filename after options.\n"); > + printf("Usage: getcifsacl [option] <file_name>\n"); > + goto out; > + } else > + filename= argv[optind]; > > if (!raw && !plugin_loaded) { > ret = init_plugin(&plugin_handle); > -- > 2.20.1 > fixed code style and merged, thanks. -- Best regards, Pavel Shilovsky
diff --git a/getcifsacl.c b/getcifsacl.c index 7f6e673..850a252 100644 --- a/getcifsacl.c +++ b/getcifsacl.c @@ -40,6 +40,7 @@ static void *plugin_handle; static bool plugin_loaded; +static char *execname; static void print_each_ace_mask(uint32_t mask) @@ -331,6 +332,8 @@ getcifsacl_usage(const char *prog) prog); fprintf(stderr, "Usage: %s [option] <file_name>\n", prog); fprintf(stderr, "Valid options:\n"); + fprintf(stderr, "\t-h Display this help text\n"); + fprintf(stderr, "\n"); fprintf(stderr, "\t-v Version of the program\n"); fprintf(stderr, "\n"); fprintf(stderr, "\t-r Display raw values of the ACE fields\n"); @@ -345,8 +348,15 @@ main(const int argc, char *const argv[]) ssize_t attrlen; size_t bufsize = BUFSIZE; char *filename, *attrval; + execname = basename(argv[0]); + + if (argc < 2) { + fprintf(stderr, "%s: you must specify a filename.\n", execname); + printf("Try `getcifsacl -h' for more information.\n"); + goto out; + } - while ((c = getopt_long(argc, argv, "r:v", NULL, NULL)) != -1) { + while ((c = getopt_long(argc, argv, "rhv", NULL, NULL)) != -1) { switch (c) { case 'v': printf("Version: %s\n", VERSION); @@ -355,18 +365,18 @@ main(const int argc, char *const argv[]) raw = true; break; default: - break; + getcifsacl_usage(execname); + goto out; + } } - if (raw && argc == 3) - filename = argv[2]; - else if (argc == 2) - filename = argv[1]; - else { - getcifsacl_usage(basename(argv[0])); - goto out; - } + if (optind >= argc) { + printf("you must specify a filename after options.\n"); + printf("Usage: getcifsacl [option] <file_name>\n"); + goto out; + } else + filename= argv[optind]; if (!raw && !plugin_loaded) { ret = init_plugin(&plugin_handle);
Call getcifsacl_usage only for -h and default case. For others error out with appropriate message. Signed-off-by: Kenneth D'souza <kdsouza@redhat.com> --- getcifsacl.c | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-)