X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng%2Flttng.c;h=aaee5a25d243d4c828d4f82434cd508a8a0e80d0;hp=8cf45410ed28957b0752d8ca05dfde78991114f0;hb=77927271f4b396ec3cb9e8e380c26d19e3589558;hpb=faf04ce7177b1534f3078c65b3c49db9aa898c0f diff --git a/src/bin/lttng/lttng.c b/src/bin/lttng/lttng.c index 8cf45410e..aaee5a25d 100644 --- a/src/bin/lttng/lttng.c +++ b/src/bin/lttng/lttng.c @@ -32,6 +32,15 @@ #include #include "command.h" +#include "version.h" + +static const char *help_msg = +#ifdef LTTNG_EMBED_HELP +#include +#else +NULL +#endif +; /* Variables */ static char *progname; @@ -76,6 +85,10 @@ static struct cmd_struct commands[] = { { "list", cmd_list}, { "load", cmd_load}, { "metadata", cmd_metadata}, + { "regenerate", cmd_regenerate}, + { "rotate", cmd_rotate}, + { "enable-rotation", cmd_enable_rotation}, + { "disable-rotation", cmd_disable_rotation}, { "save", cmd_save}, { "set-session", cmd_set_session}, { "snapshot", cmd_snapshot}, @@ -84,10 +97,8 @@ static struct cmd_struct commands[] = { { "stop", cmd_stop}, { "track", cmd_track}, { "untrack", cmd_untrack}, - { "help", NULL}, { "version", cmd_version}, { "view", cmd_view}, - { "regenerate", cmd_regenerate}, { NULL, NULL} /* Array closure */ }; @@ -242,6 +253,23 @@ end: return ret; } +static bool command_exists(const char *command) +{ + const struct cmd_struct *cmd = commands; + bool exists = false; + + while (cmd->name != NULL) { + if (!strcmp(command, cmd->name)) { + exists = true; + goto end; + } + cmd++; + } + +end: + return exists; +} + static void show_basic_help(void) { puts("Usage: lttng [--group=GROUP] [--mi=TYPE] [--no-sessiond | --sessiond-path=PATH]"); @@ -253,7 +281,6 @@ static void show_basic_help(void) puts(" create " CONFIG_CMD_DESCR_CREATE); puts(" destroy " CONFIG_CMD_DESCR_DESTROY); puts(" load " CONFIG_CMD_DESCR_LOAD); - puts(" metadata " CONFIG_CMD_DESCR_METADATA); puts(" regenerate " CONFIG_CMD_DESCR_REGENERATE); puts(" save " CONFIG_CMD_DESCR_SAVE); puts(" set-session " CONFIG_CMD_DESCR_SET_SESSION); @@ -276,6 +303,11 @@ static void show_basic_help(void) puts(" start " CONFIG_CMD_DESCR_START); puts(" stop " CONFIG_CMD_DESCR_STOP); puts(""); + puts("Tracing session rotation:"); + puts(" disable-rotation " CONFIG_CMD_DESCR_DISABLE_ROTATION); + puts(" enable-rotation " CONFIG_CMD_DESCR_ENABLE_ROTATION); + puts(" rotate " CONFIG_CMD_DESCR_ROTATE); + puts(""); puts("Resource tracking:"); puts(" track " CONFIG_CMD_DESCR_TRACK); puts(" untrack " CONFIG_CMD_DESCR_UNTRACK); @@ -317,10 +349,9 @@ static int parse_args(int argc, char **argv) ret = 0; goto end; case 'h': - ret = utils_show_man_page(1, "lttng"); - + ret = utils_show_help(1, "lttng", help_msg); if (ret) { - ERR("Cannot view man page lttng(1)"); + ERR("Cannot show --help for `lttng`"); perror("exec"); } goto end; @@ -394,19 +425,19 @@ static int parse_args(int argc, char **argv) ret = handle_command(argc - optind, argv + optind); switch (ret) { case CMD_WARNING: - WARN("Some command(s) went wrong"); - break; case CMD_ERROR: - ERR("Command error"); break; case CMD_UNDEFINED: - ERR("Undefined command or invalid arguments"); + if (!command_exists(*(argv + optind))) { + MSG("lttng: %s is not an lttng command. See 'lttng --help'.", + *(argv + optind)); + } else { + ERR("Unrecognized argument used with \'%s\' command", + *(argv + optind)); + } break; case CMD_FATAL: - ERR("Fatal error"); - break; case CMD_UNSUPPORTED: - ERR("Unsupported command"); break; case -1: ret = 1;