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; +} + | 
