/* * fs.rmdir */ static int fs_rmdir(lua_State* L) { FSR__SETUP const char *path = luaL_checkstring(L, 1); FSR__SET_OPT_CB(2, on_fs_callback) uv_fs_rmdir(loop, req, path, cb); FSR__TEARDOWN }
/// Remove a directory. /// /// @return `0` for success, non-zero for failure. int os_rmdir(const char *path) { uv_fs_t request; int result = uv_fs_rmdir(uv_default_loop(), &request, path, NULL); uv_fs_req_cleanup(&request); return result; }
static void create_dir(uv_loop_t* loop, const char* name) { int r; uv_fs_t req; r = uv_fs_rmdir(loop, &req, name, NULL); r = uv_fs_mkdir(loop, &req, name, 0755, NULL); ASSERT(r == 0); uv_fs_req_cleanup(&req); }
static void create_dir(uv_loop_t* loop, const char* name) { int r; uv_fs_t req; r = uv_fs_rmdir(loop, &req, name, NULL); r = uv_fs_mkdir(loop, &req, name, 0755, NULL); ASSERT(r == 0 || uv_last_error(loop).code == UV_EEXIST); uv_fs_req_cleanup(&req); }
/* Remove a directory recursively. */ void MVM_dir_rmdir(MVMThreadContext *tc, MVMString *path) { char * const pathname = MVM_string_utf8_encode_C_string(tc, path); uv_fs_t req; if(uv_fs_rmdir(tc->loop, &req, pathname, NULL) < 0 ) { MVM_free(pathname); MVM_exception_throw_adhoc(tc, "Failed to rmdir: %s", uv_strerror(req.result)); } MVM_free(pathname); }
void clearAllSto() { // Get region path char * regionPath; int regionPathLength = setRegionPath(®ionPath, 0, 0); // remove directory uv_fs_t rmdir_req; uv_fs_rmdir(uv_default_loop(), &rmdir_req, regionPath, NULL); uv_fs_req_cleanup(&rmdir_req); free(regionPath); }
void remove_realm_files_from_directory(const std::string &dir_path) { FileSystemRequest scandir_req; if (uv_fs_scandir(uv_default_loop(), &scandir_req, dir_path.c_str(), 0, nullptr) < 0) { throw UVException(static_cast<uv_errno_t>(scandir_req.result)); } uv_dirent_t entry; while (uv_fs_scandir_next(&scandir_req, &entry) != UV_EOF) { std::string path(dir_path + '/' + entry.name); if (entry.type == UV_DIRENT_DIR) { static std::string realm_management_extension(".realm.management"); if (ends_with(path, realm_management_extension)) { uv_dirent_t management_entry; FileSystemRequest management_scandir_req; if (uv_fs_scandir(uv_default_loop(), &management_scandir_req, path.c_str(), 0, nullptr) < 0) { throw UVException(static_cast<uv_errno_t>(scandir_req.result)); } while (uv_fs_scandir_next(&management_scandir_req, &management_entry) != UV_EOF) { std::string management_entry_path = path + '/' + management_entry.name; FileSystemRequest delete_req; if (uv_fs_unlink(uv_default_loop(), &delete_req, management_entry_path.c_str(), nullptr) != 0) { throw UVException(static_cast<uv_errno_t>(delete_req.result)); } } FileSystemRequest management_rmdir_req; if (uv_fs_rmdir(uv_default_loop(), &management_rmdir_req, path.c_str(), nullptr)) { throw UVException(static_cast<uv_errno_t>(management_rmdir_req.result)); } } } else { static std::string realm_extension(".realm"); static std::string realm_note_extension(".realm.note"); static std::string realm_lock_extension(".realm.lock"); if (ends_with(path, realm_extension) || ends_with(path, realm_note_extension) || ends_with(path, realm_lock_extension)) { FileSystemRequest delete_req; if (uv_fs_unlink(uv_default_loop(), &delete_req, path.c_str(), nullptr) != 0) { throw UVException(static_cast<uv_errno_t>(delete_req.result)); } } } } }
extern "C" int rust_uv_fs_rmdir(uv_loop_t* loop, uv_fs_t* req, const char* path, uv_fs_cb cb) { return uv_fs_rmdir(loop, req, path, cb); }