static
struct bt_config *bt_config_convert_from_args(int argc, const char *argv[],
int *retcode, const bt_value *plugin_paths,
- int *default_log_level)
+ int *default_log_level, const bt_interrupter *interrupter)
{
enum convert_current_item_type current_item_type =
CONVERT_CURRENT_ITEM_TYPE_NONE;
* it in `non_opt_params`.
*/
bt_value *array;
+ bt_value_array_append_element_status append_element_status;
uint64_t idx = bt_value_array_get_length(non_opt_params) - 1;
array = bt_value_array_borrow_element_by_index(non_opt_params, idx);
- bt_value_array_append_string_element(array, arg);
+
+ append_element_status = bt_value_array_append_string_element(array, arg);
+ if (append_element_status != BT_VALUE_ARRAY_APPEND_ELEMENT_STATUS_OK) {
+ BT_CLI_LOGE_APPEND_CAUSE_OOM();
+ goto error;
+ }
} else {
BT_CLI_LOGE_APPEND_CAUSE(
"No current component (--component option) or non-option argument of which to set parameters:\n %s",
case OPT_STREAM_INTERSECTION:
/*
* Applies to all traces implementing the
- * babeltrace.trace-info query.
+ * babeltrace.trace-infos query.
*/
stream_intersection_mode = true;
break;
status = auto_discover_source_components(non_opts, plugins, plugin_count,
auto_source_discovery_restrict_component_class_name,
- *default_log_level, &auto_disc);
+ *default_log_level, &auto_disc, interrupter);
if (status != 0) {
+ if (status == AUTO_SOURCE_DISCOVERY_STATUS_INTERRUPTED) {
+ BT_CURRENT_THREAD_ERROR_APPEND_CAUSE_FROM_UNKNOWN(
+ "Babeltrace CLI", "Automatic source discovery interrupted by the user");
+ }
goto error;
}
struct bt_config *bt_config_cli_args_create(int argc, const char *argv[],
int *retcode, bool omit_system_plugin_path,
bool omit_home_plugin_path,
- const bt_value *initial_plugin_paths)
+ const bt_value *initial_plugin_paths,
+ const bt_interrupter *interrupter)
{
struct bt_config *config = NULL;
int i;
break;
case COMMAND_TYPE_CONVERT:
config = bt_config_convert_from_args(command_argc, command_argv,
- retcode, plugin_paths, &default_log_level);
+ retcode, plugin_paths, &default_log_level, interrupter);
break;
case COMMAND_TYPE_LIST_PLUGINS:
config = bt_config_list_plugins_from_args(command_argc,