From: Simon Marchi <[email protected]>

It lists snapshot sub-commands. This involves moving list_commands
to utils so that commands can use it.

Signed-off-by: Simon Marchi <[email protected]>
---
 src/bin/lttng/commands/snapshot.c |    5 +++++
 src/bin/lttng/lttng.c             |   21 +--------------------
 src/bin/lttng/utils.c             |   19 +++++++++++++++++++
 src/bin/lttng/utils.h             |    3 +++
 4 files changed, 28 insertions(+), 20 deletions(-)

diff --git a/src/bin/lttng/commands/snapshot.c 
b/src/bin/lttng/commands/snapshot.c
index 56acca8..7d49299 100644
--- a/src/bin/lttng/commands/snapshot.c
+++ b/src/bin/lttng/commands/snapshot.c
@@ -49,6 +49,7 @@ enum {
        OPT_HELP = 1,
        OPT_LIST_OPTIONS,
        OPT_MAX_SIZE,
+       OPT_LIST_COMMANDS,
 };
 
 static struct poptOption snapshot_opts[] = {
@@ -60,6 +61,7 @@ static struct poptOption snapshot_opts[] = {
        {"name",         'n', POPT_ARG_STRING, &opt_output_name, 0, 0, 0},
        {"max-size",     'm', POPT_ARG_DOUBLE, 0, OPT_MAX_SIZE, 0, 0},
        {"list-options",   0, POPT_ARG_NONE, NULL, OPT_LIST_OPTIONS, NULL, 
NULL},
+       {"list-commands",  0, POPT_ARG_NONE, NULL, OPT_LIST_COMMANDS},
        {0, 0, 0, 0, 0, 0, 0}
 };
 
@@ -439,6 +441,9 @@ int cmd_snapshot(int argc, const char **argv)
                case OPT_LIST_OPTIONS:
                        list_cmd_options(stdout, snapshot_opts);
                        goto end;
+               case OPT_LIST_COMMANDS:
+                       list_commands(actions, stdout);
+                       goto end;
                case OPT_MAX_SIZE:
                {
                        long long int val;
diff --git a/src/bin/lttng/lttng.c b/src/bin/lttng/lttng.c
index 5755db6..dc9dd92 100644
--- a/src/bin/lttng/lttng.c
+++ b/src/bin/lttng/lttng.c
@@ -151,25 +151,6 @@ static void list_options(FILE *ofp)
 }
 
 /*
- *  list_commands
- *
- *  List commands line by line. This is mostly for bash auto completion and to
- *  avoid difficult parsing.
- */
-static void list_commands(FILE *ofp)
-{
-       int i = 0;
-       struct cmd_struct *cmd = NULL;
-
-       cmd = &commands[i];
-       while (cmd->name != NULL) {
-               fprintf(ofp, "%s\n", cmd->name);
-               i++;
-               cmd = &commands[i];
-       }
-}
-
-/*
  * clean_exit
  */
 static void clean_exit(int code)
@@ -466,7 +447,7 @@ static int parse_args(int argc, char **argv)
                        ret = 0;
                        goto end;
                case OPT_DUMP_COMMANDS:
-                       list_commands(stdout);
+                       list_commands(commands, stdout);
                        ret = 0;
                        goto end;
                default:
diff --git a/src/bin/lttng/utils.c b/src/bin/lttng/utils.c
index 6041655..e40c3fd 100644
--- a/src/bin/lttng/utils.c
+++ b/src/bin/lttng/utils.c
@@ -25,6 +25,7 @@
 
 #include "conf.h"
 #include "utils.h"
+#include "command.h"
 
 /*
  *  get_session_name
@@ -56,6 +57,24 @@ error:
        return NULL;
 }
 
+/*
+ *  list_commands
+ *
+ *  List commands line by line. This is mostly for bash auto completion and to
+ *  avoid difficult parsing.
+ */
+void list_commands(struct cmd_struct *commands, FILE *ofp)
+{
+       int i = 0;
+       struct cmd_struct *cmd = NULL;
+
+       cmd = &commands[i];
+       while (cmd->name != NULL) {
+               fprintf(ofp, "%s\n", cmd->name);
+               i++;
+               cmd = &commands[i];
+       }
+}
 
 /*
  * list_cmd_options
diff --git a/src/bin/lttng/utils.h b/src/bin/lttng/utils.h
index 57bec12..fb973ca 100644
--- a/src/bin/lttng/utils.h
+++ b/src/bin/lttng/utils.h
@@ -20,7 +20,10 @@
 
 #include <popt.h>
 
+struct cmd_struct;
+
 char *get_session_name(void);
+void list_commands(struct cmd_struct *commands, FILE *ofp);
 void list_cmd_options(FILE *ofp, struct poptOption *options);
 
 /*
-- 
1.7.1


_______________________________________________
lttng-dev mailing list
[email protected]
http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

Reply via email to