Mi: mi backend + mi for command version
[lttng-tools.git] / src / bin / lttng / commands / save.c
index e7c3caeefb2e6dce8de041c7bf4e9c73e6888628..fdc0da6bf2ee921b6438fef2df6676ed88f5ad20 100644 (file)
@@ -73,6 +73,13 @@ int cmd_save(int argc, const char **argv)
        pc = poptGetContext(NULL, argc, argv, save_opts, 0);
        poptReadDefaultConfig(pc, 0);
 
+       /* TODO: mi support */
+       if (lttng_opt_mi) {
+               ret = -LTTNG_ERR_MI_NOT_IMPLEMENTED;
+               ERR("mi option not supported");
+               goto end;
+       }
+
        while ((opt = poptGetNextOpt(pc)) != -1) {
                switch (opt) {
                case OPT_HELP:
@@ -93,12 +100,9 @@ int cmd_save(int argc, const char **argv)
 
        if (!opt_save_all) {
                session_name = poptGetArg(pc);
-               if (!session_name) {
-                       ERR("A session name must be provided if the \"all\" option is not used.");
-                       ret = CMD_ERROR;
-                       goto end;
+               if (session_name) {
+                       DBG2("Session name: %s", session_name);
                }
-               DBG2("Session name: %s", session_name);
        }
 
        attr = lttng_save_session_attr_create();
@@ -117,18 +121,27 @@ int cmd_save(int argc, const char **argv)
                goto end_destroy;
        }
 
-       if (lttng_save_session_attr_set_output_url(attr,
-               opt_output_path)) {
+       if (lttng_save_session_attr_set_output_url(attr, opt_output_path)) {
                ret = CMD_ERROR;
                goto end_destroy;
        }
 
        ret = lttng_save_session(attr);
-       if (ret) {
-               if (ret == -LTTNG_ERR_SESS_NOT_FOUND) {
-                       ERR("Session '%s' not found", session_name);
+       if (ret < 0) {
+               ERR("%s", lttng_strerror(ret));
+       } else {
+               /* Inform the user of what just happened on success. */
+               if (session_name && opt_output_path) {
+                       MSG("Session %s saved successfully in %s.", session_name,
+                                       opt_output_path);
+               } else if (session_name && !opt_output_path) {
+                       MSG("Session %s saved successfully.", session_name);
+               } else if (!session_name && opt_output_path) {
+                       MSG("All sessions have been saved successfully in %s.",
+                                       opt_output_path);
+               } else {
+                       MSG("All sessions have been saved successfully.");
                }
-               ret = CMD_ERROR;
        }
 end_destroy:
        lttng_save_session_attr_destroy(attr);
This page took 0.026555 seconds and 5 git commands to generate.