Remove include of <babeltrace-internal.h> from public headers
[babeltrace.git] / cli / babeltrace-cfg-cli-args.c
index cd8fb1892d831656017865e400f0918c941c715a..b48c696741aaddba4f77665b3641c87518bd6848 100644 (file)
@@ -22,6 +22,9 @@
  * SOFTWARE.
  */
 
+#define BT_LOG_TAG "CLI-CFG-CLI-ARGS"
+#include "logging.h"
+
 #include <errno.h>
 #include <stdlib.h>
 #include <string.h>
@@ -39,9 +42,6 @@
 #include "babeltrace-cfg-cli-args.h"
 #include "babeltrace-cfg-cli-args-connect.h"
 
-#define BT_LOG_TAG "CLI-CFG-ARGS"
-#include "logging.h"
-
 /*
  * Error printf() macro which prepends "Error: " the first time it's
  * called. This gives a nicer feel than having a bunch of error prefixes
@@ -1410,7 +1410,7 @@ int append_env_var_plugin_paths(struct bt_value *plugin_paths)
        const char *envvar;
 
        if (bt_common_is_setuid_setgid()) {
-               printf_debug("Skipping non-system plugin paths for setuid/setgid binary\n");
+               BT_LOGI_STR("Skipping non-system plugin paths for setuid/setgid binary.");
                goto end;
        }
 
@@ -1437,7 +1437,7 @@ int append_home_and_system_plugin_paths(struct bt_value *plugin_paths,
 
        if (!omit_home_plugin_path) {
                if (bt_common_is_setuid_setgid()) {
-                       printf_debug("Skipping non-system plugin paths for setuid/setgid binary\n");
+                       BT_LOGI_STR("Skipping non-system plugin paths for setuid/setgid binary.");
                } else {
                        char *home_plugin_dir =
                                bt_common_get_home_plugin_path();
@@ -1703,7 +1703,7 @@ int bt_config_append_plugin_paths_check_setuid_setgid(
        int ret = 0;
 
        if (bt_common_is_setuid_setgid()) {
-               printf_debug("Skipping non-system plugin paths for setuid/setgid binary\n");
+               BT_LOGI_STR("Skipping non-system plugin paths for setuid/setgid binary.");
                goto end;
        }
 
@@ -2719,7 +2719,7 @@ struct bt_config *bt_config_run_from_args_array(struct bt_value *run_args,
 {
        struct bt_config *cfg = NULL;
        const char **argv;
-       size_t i;
+       int64_t i, len;
        const size_t argc = bt_value_array_size(run_args) + 1;
 
        argv = calloc(argc, sizeof(*argv));
@@ -2730,7 +2730,12 @@ struct bt_config *bt_config_run_from_args_array(struct bt_value *run_args,
 
        argv[0] = "run";
 
-       for (i = 0; i < bt_value_array_size(run_args); i++) {
+       len = bt_value_array_size(run_args);
+       if (len < 0) {
+               printf_err("Invalid executable arguments\n");
+               goto end;
+       }
+       for (i = 0; i < len; i++) {
                int ret;
                struct bt_value *arg_value = bt_value_array_get(run_args, i);
                const char *arg;
@@ -2868,7 +2873,7 @@ void print_convert_usage(FILE *fp)
        fprintf(fp, "                                    `text`:\n");
        fprintf(fp, "                                      Create an implicit `sink.text.pretty`\n");
        fprintf(fp, "                                      component\n");
-       fprintf(fp, "                                    `text`:\n");
+       fprintf(fp, "                                    `ctf`:\n");
        fprintf(fp, "                                      Create an implicit `sink.ctf.fs`\n");
        fprintf(fp, "                                      component\n");
        fprintf(fp, "                                    `dummy`:\n");
@@ -3548,7 +3553,7 @@ int fill_implicit_ctf_inputs_args(GPtrArray *implicit_ctf_inputs_args,
                BT_PUT(impl_args->extra_params);
                impl_args->extra_params =
                        bt_value_copy(base_implicit_ctf_input_args->extra_params);
-               if (!impl_args) {
+               if (!impl_args->extra_params) {
                        print_err_oom();
                        destroy_implicit_component_args(impl_args);
                        goto error;
@@ -3596,6 +3601,7 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[],
        bool got_output_format_opt = false;
        bool trimmer_has_begin = false;
        bool trimmer_has_end = false;
+       bool stream_intersection_mode = false;
        GString *cur_name = NULL;
        GString *cur_name_prefix = NULL;
        const char *leftover = NULL;
@@ -4093,29 +4099,27 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[],
                        break;
                case OPT_CLOCK_FORCE_CORRELATE:
                        append_implicit_component_param(
-                               &implicit_muxer_args, "assume-absolute-clock-classes", "yes");
+                               &implicit_muxer_args,
+                               "assume-absolute-clock-classes", "yes");
                        break;
                case OPT_CLOCK_GMT:
                        append_implicit_component_param(
                                &implicit_text_args, "clock-gmt", "yes");
+                       append_implicit_component_param(
+                               &implicit_trimmer_args, "clock-gmt", "yes");
                        implicit_text_args.exists = true;
                        break;
                case OPT_CLOCK_OFFSET:
                        base_implicit_ctf_input_args.exists = true;
-                       ret = append_implicit_component_extra_param(
-                               &base_implicit_ctf_input_args, "clock-offset-cycles", arg);
-                       if (ret) {
-                               goto error;
-                       }
+                       append_implicit_component_param(
+                                       &base_implicit_ctf_input_args,
+                                       "clock-class-offset-s", arg);
                        break;
                case OPT_CLOCK_OFFSET_NS:
                        base_implicit_ctf_input_args.exists = true;
-                       ret = append_implicit_component_extra_param(
-                               &base_implicit_ctf_input_args,
-                               "clock-offset-ns", arg);
-                       if (ret) {
-                               goto error;
-                       }
+                       append_implicit_component_param(
+                                       &base_implicit_ctf_input_args,
+                                       "clock-class-offset-ns", arg);
                        break;
                case OPT_CLOCK_SECONDS:
                        append_implicit_component_param(
@@ -4265,10 +4269,11 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[],
                        print_run_args_0 = true;
                        break;
                case OPT_STREAM_INTERSECTION:
-                       append_implicit_component_param(
-                               &base_implicit_ctf_input_args,
-                               "stream-intersection", "yes");
-                       base_implicit_ctf_input_args.exists = true;
+                       /*
+                        * Applies to all traces implementing the trace-info
+                        * query.
+                        */
+                       stream_intersection_mode = true;
                        break;
                case OPT_VERBOSE:
                        if (*log_level != 'V' && *log_level != 'D') {
@@ -4654,6 +4659,11 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[],
         * here.
         */
        if (print_run_args || print_run_args_0) {
+               if (stream_intersection_mode) {
+                       printf_err("Cannot specify --stream-intersection with --run-args or --run-args-0\n");
+                       goto error;
+               }
+
                for (i = 0; i < bt_value_array_size(run_args); i++) {
                        struct bt_value *arg_value =
                                bt_value_array_get(run_args, i);
@@ -4704,6 +4714,7 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[],
                goto error;
        }
 
+       cfg->cmd_data.run.stream_intersection_mode = stream_intersection_mode;
        goto end;
 
 error:
This page took 0.025816 seconds and 4 git commands to generate.