summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenneth D'souza <kdsouza@redhat.com>2019-04-17 15:36:46 +0530
committerPavel Shilovsky <pshilov@microsoft.com>2019-04-17 15:10:15 -0700
commit12c2f088fa3d666fc5aa48a700e740523d8d2023 (patch)
tree2dfdb16ca565356d5d45b294bae1e70de26d72d2
parent0009157e9db4dc1f9f8ab66feebea2d7d12014b1 (diff)
downloadcifs-utils-12c2f088fa3d666fc5aa48a700e740523d8d2023.tar.gz
cifs-utils-12c2f088fa3d666fc5aa48a700e740523d8d2023.tar.bz2
cifs-utils-12c2f088fa3d666fc5aa48a700e740523d8d2023.zip
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>
-rw-r--r--smbinfo.c27
-rw-r--r--smbinfo.rst5
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"
@@ -98,6 +100,14 @@ usage(char *name)
}
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)
{
tv->tv_usec = (smb2_time / 10) % 1000000;
@@ -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
*******