{"group", 1, NULL, 'g'},
{"verbose", 0, NULL, 'v'},
{"quiet", 0, NULL, 'q'},
+ {"mi", 1, NULL, 'm'},
{"no-sessiond", 0, NULL, 'n'},
{"sessiond-path", 1, NULL, OPT_SESSION_PATH},
{"relayd-path", 1, NULL, OPT_RELAYD_PATH},
fprintf(ofp, " --list-commands Simple listing of lttng commands\n");
fprintf(ofp, " -v, --verbose Increase verbosity\n");
fprintf(ofp, " -q, --quiet Quiet mode\n");
+ fprintf(ofp, " -m, --mi TYPE Machine Interface mode.\n");
+ fprintf(ofp, " Type: xml\n");
fprintf(ofp, " -g, --group NAME Unix tracing group name. (default: tracing)\n");
fprintf(ofp, " -n, --no-sessiond Don't spawn a session daemon\n");
fprintf(ofp, " --sessiond-path PATH Session daemon full path\n");
progname);
}
+/*
+ * Find the MI output type enum from a string. This function is for the support
+ * of machine interface output.
+ */
+static int mi_output_type(const char *output_type)
+{
+ int ret = 0;
+
+ if (!strncasecmp("xml", output_type, 3)) {
+ ret = LTTNG_MI_XML;
+ } else {
+ /* Invalid output format */
+ ERR("MI output format not supported");
+ ret = -LTTNG_ERR_MI_OUTPUT_TYPE;
+ }
+
+ return ret;
+}
+
/*
* list_options
*
clean_exit(EXIT_FAILURE);
}
- while ((opt = getopt_long(argc, argv, "+Vhnvqg:", long_options, NULL)) != -1) {
+ while ((opt = getopt_long(argc, argv, "+Vhnvqg:m:", long_options, NULL)) != -1) {
switch (opt) {
case 'V':
version(stdout);
ret = 0;
goto end;
case 'v':
- lttng_opt_verbose += 1;
+ /* There is only 3 possible level of verbosity. (-vvv) */
+ if (lttng_opt_verbose < 3) {
+ lttng_opt_verbose += 1;
+ }
break;
case 'q':
lttng_opt_quiet = 1;
break;
+ case 'm':
+ lttng_opt_mi = mi_output_type(optarg);
+ if (lttng_opt_mi < 0) {
+ ret = lttng_opt_mi;
+ goto error;
+ }
+ break;
case 'g':
lttng_set_tracing_group(optarg);
break;