File 0001-smbinfo-Improve-help-usage-and-add-h-option.patch of Package cifs-utils.18678
From 12c2f088fa3d666fc5aa48a700e740523d8d2023 Mon Sep 17 00:00:00 2001
From: Kenneth D'souza <kdsouza@redhat.com>
Date: Wed, 17 Apr 2019 15:36:46 +0530
Subject: [PATCH] smbinfo: Improve help usage and add -h option.
Call usage only for -h case. This avoids cluttering the screen with long
help output.
As we are adding more options to the utility, the end error is just hidden.
Call short_usage wherever necessary.
Signed-off-by: Kenneth D'souza <kdsouza@redhat.com>
---
smbinfo.c | 27 ++++++++++++++++++++++-----
smbinfo.rst | 5 ++++-
2 files changed, 26 insertions(+), 6 deletions(-)
diff --git a/smbinfo.c b/smbinfo.c
index 4bc503a..6e258c2 100644
--- a/smbinfo.c
+++ b/smbinfo.c
@@ -64,6 +64,8 @@ usage(char *name)
{
fprintf(stderr, "Usage: %s [-V] <command> <file>\n"
"-V for verbose output\n"
+ "-h display this help text\n"
+ "-v print smbinfo version\n"
"Commands are\n"
" fileaccessinfo:\n"
" Prints FileAccessInfo for a cifs file.\n"
@@ -97,6 +99,14 @@ usage(char *name)
exit(1);
}
+static void
+short_usage(char *name)
+{
+ fprintf(stderr, "Usage: %s [-v] [-V] <command> <file>\n"
+ "Try 'smbinfo -h' for more information.\n", name);
+ exit(1);
+}
+
static void
win_to_timeval(uint64_t smb2_time, struct timeval *tv)
{
@@ -1075,7 +1085,11 @@ int main(int argc, char *argv[])
int c;
int f;
- while ((c = getopt_long(argc, argv, "vV", NULL, NULL)) != -1) {
+ if (argc < 2) {
+ short_usage(argv[0]);
+ }
+
+ while ((c = getopt_long(argc, argv, "vVh", NULL, NULL)) != -1) {
switch (c) {
case 'v':
printf("smbinfo version %s\n", VERSION);
@@ -1083,15 +1097,18 @@ int main(int argc, char *argv[])
case 'V':
verbose = 1;
break;
- default:
+ case 'h':
usage(argv[0]);
+ break;
+ default:
+ short_usage(argv[0]);
}
}
- if (optind >= argc - 1)
- usage(argv[0]);
+ if (optind >= argc -1)
+ short_usage(argv[0]);
- if ((f = open(argv[optind + 1], O_RDONLY)) < 0) {
+ if ((f = open(argv[optind + 1 ], O_RDONLY)) < 0) {
fprintf(stderr, "Failed to open %s\n", argv[optind + 1]);
exit(1);
}
diff --git a/smbinfo.rst b/smbinfo.rst
index 0c96050..be4c829 100644
--- a/smbinfo.rst
+++ b/smbinfo.rst
@@ -11,7 +11,7 @@ Userspace helper to display SMB-specific file information for the Linux SMB clie
SYNOPSIS
********
- smbinfo [-v] [-V] {command} {file system object}
+ smbinfo [-v] [-h] [-V] {command} {file system object}
***********
DESCRIPTION
@@ -38,6 +38,9 @@ OPTIONS
-V
Verbose output.
+-h
+ Print help explaining the command line options.
+
*******
COMMAND
*******
--
2.16.4