]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[route] Use generic option-parsing library
authorMichael Brown <mcb30@ipxe.org>
Sun, 21 Nov 2010 19:58:45 +0000 (19:58 +0000)
committerMichael Brown <mcb30@ipxe.org>
Mon, 22 Nov 2010 00:34:48 +0000 (00:34 +0000)
Total saving: 71 bytes.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/hci/commands/route_cmd.c

index 057349723189e80b830d8da0207000ed8a6fe01a..a4f5f91d3c7e7d9ed775d6f3dd2f82b0eed3cad6 100644 (file)
@@ -21,6 +21,7 @@ FILE_LICENCE ( GPL2_OR_LATER );
 #include <stdio.h>
 #include <getopt.h>
 #include <ipxe/command.h>
+#include <ipxe/parseopt.h>
 #include <usr/route.h>
 
 /** @file
@@ -29,52 +30,34 @@ FILE_LICENCE ( GPL2_OR_LATER );
  *
  */
 
-/**
- * "route" command syntax message
- *
- * @v argv             Argument list
- */
-static void route_syntax ( char **argv ) {
-       printf ( "Usage:\n"
-                "  %s\n"
-                "\n"
-                "Displays the routing table\n",
-                argv[0] );
-}
+/** "route" options */
+struct route_options {};
+
+/** "route" option list */
+static struct option_descriptor route_opts[] = {};
+
+/** "route" command descriptor */
+static struct command_descriptor route_cmd =
+       COMMAND_DESC ( struct route_options, route_opts, 0, 0,
+                      "", "Display the routing table" );
 
 /**
  * The "route" command
  *
  * @v argc             Argument count
  * @v argv             Argument list
- * @ret rc             Exit code
+ * @ret rc             Return status code
  */
 static int route_exec ( int argc, char **argv ) {
-       static struct option longopts[] = {
-               { "help", 0, NULL, 'h' },
-               { NULL, 0, NULL, 0 },
-       };
-
-       int c;
+       struct route_options opts;
+       int rc;
 
        /* Parse options */
-       while ( ( c = getopt_long ( argc, argv, "h", longopts, NULL ) ) >= 0 ){
-               switch ( c ) {
-               case 'h':
-                       /* Display help text */
-               default:
-                       /* Unrecognised/invalid option */
-                       route_syntax ( argv );
-                       return 1;
-               }
-       }
-
-       if ( optind != argc ) {
-               route_syntax ( argv );
-               return 1;
-       }
+       if ( ( rc = parse_options ( argc, argv, &route_cmd, &opts ) ) != 0 )
+               return rc;
 
        route();
+
        return 0;
 }