command-line: add ovs_cmdl_ prefix
[cascardo/ovs.git] / ovsdb / ovsdb-tool.c
index 11e61e6..f648707 100644 (file)
@@ -27,6 +27,7 @@
 #include "compiler.h"
 #include "dirs.h"
 #include "dynamic-string.h"
+#include "fatal-signal.h"
 #include "file.h"
 #include "lockfile.h"
 #include "log.h"
 #include "table.h"
 #include "timeval.h"
 #include "util.h"
-#include "vlog.h"
+#include "openvswitch/vlog.h"
 
 /* -m, --more: Verbosity level for "show-log" command output. */
 static int show_log_verbosity;
 
-static const struct command *get_all_commands(void);
+static const struct ovs_cmdl_command *get_all_commands(void);
 
-static void usage(void) NO_RETURN;
+OVS_NO_RETURN static void usage(void);
 static void parse_options(int argc, char *argv[]);
 
 static const char *default_db(void);
@@ -56,8 +57,8 @@ main(int argc, char *argv[])
 {
     set_program_name(argv[0]);
     parse_options(argc, argv);
-    signal(SIGPIPE, SIG_IGN);
-    run_command(argc - optind, argv + optind, get_all_commands());
+    fatal_ignore_sigpipe();
+    ovs_cmdl_run_command(argc - optind, argv + optind, get_all_commands());
     return 0;
 }
 
@@ -68,10 +69,11 @@ parse_options(int argc, char *argv[])
         {"more", no_argument, NULL, 'm'},
         {"verbose", optional_argument, NULL, 'v'},
         {"help", no_argument, NULL, 'h'},
+        {"option", no_argument, NULL, 'o'},
         {"version", no_argument, NULL, 'V'},
         {NULL, 0, NULL, 0},
     };
-    char *short_options = long_options_to_short_options(long_options);
+    char *short_options = ovs_cmdl_long_options_to_short_options(long_options);
 
     for (;;) {
         int c;
@@ -89,6 +91,10 @@ parse_options(int argc, char *argv[])
         case 'h':
             usage();
 
+        case 'o':
+            ovs_cmdl_print_options(long_options);
+            exit(EXIT_SUCCESS);
+
         case 'V':
             ovs_print_version(0, 0);
             exit(EXIT_SUCCESS);
@@ -248,6 +254,9 @@ compact_or_convert(const char *src_name_, const char *dst_name_,
 
     /* Replace source. */
     if (in_place) {
+#ifdef _WIN32
+        unlink(src_name);
+#endif
         if (rename(dst_name, src_name)) {
             ovs_fatal(errno, "failed to rename \"%s\" to \"%s\"",
                       dst_name, src_name);
@@ -524,7 +533,7 @@ do_show_log(int argc, char *argv[])
                     t *= 1000;
                 }
 
-               s = xastrftime_msec(" %Y-%m-%d %H:%M:%S.###", t, true);
+                s = xastrftime_msec(" %Y-%m-%d %H:%M:%S.###", t, true);
                 fputs(s, stdout);
                 free(s);
             }
@@ -554,23 +563,30 @@ do_help(int argc OVS_UNUSED, char *argv[] OVS_UNUSED)
     usage();
 }
 
-static const struct command all_commands[] = {
-    { "create", 0, 2, do_create },
-    { "compact", 0, 2, do_compact },
-    { "convert", 0, 3, do_convert },
-    { "needs-conversion", 0, 2, do_needs_conversion },
-    { "db-version", 0, 1, do_db_version },
-    { "db-cksum", 0, 1, do_db_cksum },
-    { "schema-version", 0, 1, do_schema_version },
-    { "schema-cksum", 0, 1, do_schema_cksum },
-    { "query", 1, 2, do_query },
-    { "transact", 1, 2, do_transact },
-    { "show-log", 0, 1, do_show_log },
-    { "help", 0, INT_MAX, do_help },
-    { NULL, 0, 0, NULL },
+static void
+do_list_commands(int argc OVS_UNUSED, char *argv[] OVS_UNUSED)
+{
+     ovs_cmdl_print_commands(get_all_commands());
+}
+
+static const struct ovs_cmdl_command all_commands[] = {
+    { "create", "[db [schema]]", 0, 2, do_create },
+    { "compact", "[db [dst]]", 0, 2, do_compact },
+    { "convert", "[db [schema [dst]]]", 0, 3, do_convert },
+    { "needs-conversion", NULL, 0, 2, do_needs_conversion },
+    { "db-version", "[db]",  0, 1, do_db_version },
+    { "db-cksum", "[db]", 0, 1, do_db_cksum },
+    { "schema-version", "[schema]", 0, 1, do_schema_version },
+    { "schema-cksum", "[schema]", 0, 1, do_schema_cksum },
+    { "query", "[db] trns", 1, 2, do_query },
+    { "transact", "[db] trns", 1, 2, do_transact },
+    { "show-log", "[db]", 0, 1, do_show_log },
+    { "help", NULL, 0, INT_MAX, do_help },
+    { "list-commands", NULL, 0, INT_MAX, do_list_commands },
+    { NULL, NULL, 0, 0, NULL },
 };
 
-static const struct command *get_all_commands(void)
+static const struct ovs_cmdl_command *get_all_commands(void)
 {
     return all_commands;
 }