Move to kernel style SPDX license identifiers
[babeltrace.git] / src / cli / babeltrace2-cfg.c
CommitLineData
c42c79ea 1/*
0235b0db 2 * SPDX-License-Identifier: MIT
c42c79ea
PP
3 *
4 * Copyright 2016 Philippe Proulx <pproulx@efficios.com>
5 *
0235b0db 6 * Babeltrace trace converter - parameter parsing
c42c79ea
PP
7 */
8
578e048b 9#include "common/common.h"
3fadfbc0 10#include <babeltrace2/babeltrace.h>
c42c79ea 11#include <glib.h>
ec2c5e50 12#include "babeltrace2-cfg.h"
c42c79ea 13
c42c79ea 14static
9009cc24 15void destroy_gstring(void *data)
1670bffd
PP
16{
17 g_string_free(data, TRUE);
18}
19
c42c79ea 20/*
4eb7af91
SM
21 * Extracts the various paths from the string arg, delimited by ':' on UNIX,
22 * ';' on Windows, and appends them to the array value object `plugin_paths`.
c42c79ea 23 */
601b0d3c 24int bt_config_append_plugin_paths(
b19ff26f 25 bt_value *plugin_paths, const char *arg)
c42c79ea 26{
601b0d3c 27 int ret = 0;
1670bffd 28 GPtrArray *dirs = g_ptr_array_new_with_free_func(destroy_gstring);
1670bffd 29 size_t i;
c42c79ea 30
1670bffd 31 if (!dirs) {
601b0d3c 32 ret = -1;
1670bffd
PP
33 goto end;
34 }
c42c79ea 35
1670bffd
PP
36 ret = bt_common_append_plugin_path_dirs(arg, dirs);
37 if (ret) {
601b0d3c 38 ret = -1;
1670bffd
PP
39 goto end;
40 }
c42c79ea 41
1670bffd
PP
42 for (i = 0; i < dirs->len; i++) {
43 GString *dir = g_ptr_array_index(dirs, i);
c42c79ea 44
05e21286 45 ret = bt_value_array_append_string_element(
da91b29a 46 plugin_paths, dir->str);
d24d5663 47 if (ret < 0) {
601b0d3c
PP
48 ret = -1;
49 goto end;
74aa915d 50 }
c42c79ea
PP
51 }
52
1670bffd
PP
53end:
54 g_ptr_array_free(dirs, TRUE);
601b0d3c 55 return ret;
c42c79ea
PP
56}
57
9009cc24 58void bt_config_connection_destroy(struct bt_config_connection *connection)
c42c79ea 59{
9009cc24
PP
60 if (!connection) {
61 return;
62 }
c42c79ea 63
9009cc24
PP
64 if (connection->upstream_comp_name) {
65 g_string_free(connection->upstream_comp_name, TRUE);
6e1bc0df 66 }
db0f160a 67
9009cc24
PP
68 if (connection->downstream_comp_name) {
69 g_string_free(connection->downstream_comp_name, TRUE);
c42c79ea
PP
70 }
71
9009cc24
PP
72 if (connection->upstream_port_glob) {
73 g_string_free(connection->upstream_port_glob, TRUE);
290725f7
PP
74 }
75
9009cc24
PP
76 if (connection->downstream_port_glob) {
77 g_string_free(connection->downstream_port_glob, TRUE);
290725f7
PP
78 }
79
9009cc24
PP
80 if (connection->arg) {
81 g_string_free(connection->arg, TRUE);
290725f7
PP
82 }
83
9009cc24 84 g_free(connection);
c42c79ea 85}
This page took 0.081546 seconds and 4 git commands to generate.