diff options
-rw-r--r-- | include/copy.h | 8 | ||||
-rw-r--r-- | include/utils.h | 8 | ||||
-rw-r--r-- | src/copy.c | 26 | ||||
-rw-r--r-- | src/utils.c | 29 |
4 files changed, 36 insertions, 35 deletions
diff --git a/include/copy.h b/include/copy.h index 609a6cf..a26ac30 100644 --- a/include/copy.h +++ b/include/copy.h @@ -32,14 +32,6 @@ int copytree(const char *srcdir, const char *destdir, unsigned op); /** - * Create all leafs in directory path - * @param _path directory path to create - * @param mode mode_t permissions - * @return - */ -int mkdirs(const char *_path, mode_t mode); - -/** * Copy a single file * * ```c diff --git a/include/utils.h b/include/utils.h index eee2e30..a3d244a 100644 --- a/include/utils.h +++ b/include/utils.h @@ -357,4 +357,12 @@ struct StrList *listdir(const char *path); */ long get_cpu_count(); +/** + * Create all leafs in directory path + * @param _path directory path to create + * @param mode mode_t permissions + * @return + */ +int mkdirs(const char *_path, mode_t mode); + #endif //STASIS_UTILS_H @@ -85,32 +85,6 @@ int copy2(const char *src, const char *dest, unsigned int op) { return 0; } -int mkdirs(const char *_path, mode_t mode) { - int status; - char *token; - char pathbuf[PATH_MAX] = {0}; - char *path; - path = pathbuf; - strcpy(path, _path); - errno = 0; - - char result[PATH_MAX] = {0}; - status = 0; - while ((token = strsep(&path, "/")) != NULL && !status) { - if (token[0] == '.') - continue; - strcat(result, token); - strcat(result, "/"); - status = mkdir(result, mode); - if (status && errno == EEXIST) { - status = 0; - errno = 0; - continue; - } - } - return status; -} - int copytree(const char *srcdir, const char *destdir, unsigned int op) { DIR *dir; struct dirent *d; diff --git a/src/utils.c b/src/utils.c index 70430e1..c0b3733 100644 --- a/src/utils.c +++ b/src/utils.c @@ -772,4 +772,31 @@ long get_cpu_count() { #else return 0; #endif -}
\ No newline at end of file +} + +int mkdirs(const char *_path, mode_t mode) { + int status; + char *token; + char pathbuf[PATH_MAX] = {0}; + char *path; + path = pathbuf; + strcpy(path, _path); + errno = 0; + + char result[PATH_MAX] = {0}; + status = 0; + while ((token = strsep(&path, "/")) != NULL && !status) { + if (token[0] == '.') + continue; + strcat(result, token); + strcat(result, "/"); + status = mkdir(result, mode); + if (status && errno == EEXIST) { + status = 0; + errno = 0; + continue; + } + } + return status; +} + |