static int delete_path()

in src/Linux/local_cache.cpp [271:306]


static int delete_path(
    const char* fpath,
    const struct stat* sb,
    int typeflag,
    struct FTW* ftwbuf)
{
    if (ftwbuf->level == 0)
    {
        // do not delete the root directory of the cache
        return 0;
    }

    switch (typeflag )
    {
        case FTW_SL:
        case FTW_SLN:
        case FTW_F:
            return unlink(fpath);

        case FTW_DP:
            return rmdir(fpath);

        case FTW_D:
            errno = ENOTSUP;
            return -1;

        case FTW_DNR:
        case FTW_NS:
            errno = EACCES;
            return -1;

        default:
            errno = EINVAL;
            return -1;
    }
}