Improve delete of configuration
[lttng-tools.git] / src / bin / lttng / conf.c
index 6f290b7e5f1df78b34f4d88cf87d500a1c72b1fa..50af2289d11f0d83fd636cb136e504b3887c9be3 100644 (file)
@@ -154,14 +154,51 @@ void config_destroy(char *path)
                return;
        }
 
+       if (!config_exists(config_path)) {
+               goto end;
+       }
+
+       DBG("Removing %s\n", config_path);
        ret = remove(config_path);
        if (ret < 0) {
                perror("remove config file");
        }
-
+end:
        free(config_path);
 }
 
+/*
+ *  config_destroy_default
+ *
+ *  Destroys the default config
+ */
+
+void config_destroy_default(void)
+{
+       char *path = config_get_default_path();
+       if (path == NULL) {
+               return;
+       }
+       config_destroy(path);
+}
+
+/*
+ *  config_exists
+ *
+ *  Returns 1 if config exists, 0 otherwise
+ */
+int config_exists(const char *path)
+{
+       int ret;
+       struct stat info;
+
+       ret = stat(path, &info);
+       if (ret < 0) {
+               return 0;
+       }
+       return S_ISREG(info.st_mode) || S_ISDIR(info.st_mode);
+}
+
 /*
  *  config_read_session_name
  *
This page took 0.023187 seconds and 4 git commands to generate.