diff options
author | Steffen Jaeckel <jaeckel-floss@eyet-services.de> | 2022-03-13 12:02:59 +0100 |
---|---|---|
committer | Steffen Jaeckel <jaeckel-floss@eyet-services.de> | 2022-03-14 13:17:46 +0100 |
commit | 705b6f7806bb2bab00dded8beed8c43f4190bb93 (patch) | |
tree | 448a7c897212974a8e1270f75518156a564eff8e /src/common.c | |
parent | b8e46552bffc559263e86b2dcc0331b3f47065b7 (diff) | |
download | profani-tty-705b6f7806bb2bab00dded8beed8c43f4190bb93.tar.gz |
use `g_mkdir_with_parents()` instead of home-baked solution
Signed-off-by: Steffen Jaeckel <jaeckel-floss@eyet-services.de>
Diffstat (limited to 'src/common.c')
-rw-r--r-- | src/common.c | 36 |
1 files changed, 4 insertions, 32 deletions
diff --git a/src/common.c b/src/common.c index 6020b8c3..5e0fabf6 100644 --- a/src/common.c +++ b/src/common.c @@ -71,44 +71,16 @@ struct curl_data_t static size_t _data_callback(void* ptr, size_t size, size_t nmemb, void* data); gboolean -create_dir(char* name) +create_dir(const char* name) { - struct stat sb; - - if (stat(name, &sb) != 0) { - if (errno != ENOENT || mkdir(name, S_IRWXU) != 0) { - return FALSE; - } - } else { - if ((sb.st_mode & S_IFDIR) != S_IFDIR) { - log_debug("create_dir: %s exists and is not a directory!", name); - return FALSE; - } + if (g_mkdir_with_parents(name, S_IRWXU) != 0) { + log_error("Failed to create directory at '%s' with error '%s'", name, strerror(errno)); + return FALSE; } - return TRUE; } gboolean -mkdir_recursive(const char* dir) -{ - gboolean result = TRUE; - - for (int i = 1; i <= strlen(dir); i++) { - if (dir[i] == '/' || dir[i] == '\0') { - gchar* next_dir = g_strndup(dir, i); - result = create_dir(next_dir); - g_free(next_dir); - if (!result) { - break; - } - } - } - - return result; -} - -gboolean copy_file(const char* const sourcepath, const char* const targetpath, const gboolean overwrite_existing) { GFile* source = g_file_new_for_path(sourcepath); |