Print usage if nothing todo.
authorRoy Marples <roy@marples.name>
Mon, 29 Sep 2014 09:54:17 +0000 (09:54 +0000)
committerRoy Marples <roy@marples.name>
Mon, 29 Sep 2014 09:54:17 +0000 (09:54 +0000)
arguement -> data in man page.

src/dhcpcd-decode/dhcpcd-decode.8
src/dhcpcd-decode/dhcpcd-decode.c

index 69d205b4ba35844940de35b6fc296bd205eb8553..9050f92da3132746eaae760f4e42d1789a3f323a 100644 (file)
@@ -34,12 +34,12 @@ shell variables
 .Nm
 .Op Fl s
 .Op Fl x
-.Op Ar argument ...
+.Op Ar data ...
 .Sh DESCRIPTION
 .Nm
 will decode each
-.Va argument
-from the shell safe encoding
+.Va data
+argument from the shell safe encoding
 .Xr dhcpcd 8
 applies and write the result to
 .Pa stdout .
index b9be39bce1376bc6544dbe63a860568e0de92c3b..046cd766d6212fe7bfaa575fc1170a2d6f068868 100644 (file)
@@ -26,6 +26,7 @@
 
 #include <err.h>
 #include <errno.h>
+#include <libgen.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -56,6 +57,13 @@ process(char *src, ssize_t (*decode)(char *, size_t, const char *))
        fputc('\n', stdout);
 }
 
+static void
+usage(char *progname)
+{
+
+       fprintf(stderr, "usage: %s [-sx] [data ...]\n", basename(progname));
+}
+
 int
 main(int argc, char **argv)
 {
@@ -72,12 +80,16 @@ main(int argc, char **argv)
                        decode = dhcpcd_decode_hex;
                        break;
                case '?':
-                       fprintf(stderr, "usage: dhcpcd-decode "
-                           "[-q] [-t timeout]\n");
+                       usage(argv[0]);
                        return EXIT_FAILURE;
                }
        }
 
+       if (optind >= argc && isatty(fileno(stdin))) {
+               usage(argv[0]);
+               return EXIT_FAILURE;
+       }
+
        for (; optind < argc; optind++)
                process(argv[optind], decode);