Fix: sink.ctf.fs: remove spurious directory level when using assume-single-trace
[babeltrace.git] / src / plugins / ctf / fs-sink / fs-sink-trace.c
index c21c168f6c72ae5fbf4e1d329e598b8863bf1f9a..60f668ea3df5929e26eaa41134e2bfb2363febeb 100644 (file)
@@ -1,23 +1,7 @@
 /*
- * Copyright 2019 Philippe Proulx <pproulx@efficios.com>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * SPDX-License-Identifier: MIT
  *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
+ * Copyright 2019 Philippe Proulx <pproulx@efficios.com>
  */
 
 #define BT_COMP_LOG_SELF_COMP (trace->fs_sink->self_comp)
@@ -409,11 +393,7 @@ GString *make_trace_path_rel(const struct fs_sink_trace *trace)
        GString *path = NULL;
        const char *trace_name;
 
-       if (trace->fs_sink->assume_single_trace) {
-               /* Use output directory directly */
-               path = g_string_new("");
-               goto end;
-       }
+       BT_ASSERT(!trace->fs_sink->assume_single_trace);
 
        /* First, try to build a path using environment fields written by LTTng. */
        path = make_lttng_trace_path_rel(trace);
@@ -447,25 +427,33 @@ GString *make_trace_path(const struct fs_sink_trace *trace, const char *output_b
        GString *full_path = NULL;
        GString *unique_full_path = NULL;
 
-       rel_path = make_trace_path_rel(trace);
-       if (!rel_path) {
-               goto end;
-       }
+       if (trace->fs_sink->assume_single_trace) {
+               /* Use output directory directly */
+               unique_full_path = g_string_new(output_base_directory);
+               if (!unique_full_path) {
+                       goto end;
+               }
+       } else {
+               rel_path = make_trace_path_rel(trace);
+               if (!rel_path) {
+                       goto end;
+               }
 
-       rel_path_san = sanitize_trace_path(rel_path->str);
-       if (!rel_path_san) {
-               goto end;
-       }
+               rel_path_san = sanitize_trace_path(rel_path->str);
+               if (!rel_path_san) {
+                       goto end;
+               }
 
-       full_path = g_string_new(NULL);
-       if (!full_path) {
-               goto end;
-       }
+               full_path = g_string_new(NULL);
+               if (!full_path) {
+                       goto end;
+               }
 
-       g_string_printf(full_path, "%s" G_DIR_SEPARATOR_S "%s",
-               output_base_directory, rel_path_san->str);
+               g_string_printf(full_path, "%s" G_DIR_SEPARATOR_S "%s",
+                       output_base_directory, rel_path_san->str);
 
-       unique_full_path = make_unique_trace_path(full_path->str);
+               unique_full_path = make_unique_trace_path(full_path->str);
+       }
 
 end:
        if (rel_path) {
This page took 0.026692 seconds and 4 git commands to generate.