diff --git a/delete-bin-obj-folders.js b/delete-bin-obj-folders.js new file mode 100644 index 0000000000..040ffecb5e --- /dev/null +++ b/delete-bin-obj-folders.js @@ -0,0 +1,37 @@ +const { resolve } = require("path"); +const { readdir, rmdir } = require("fs").promises; + +async function* removeFolder(dir) { + await rmdir(dir, { recursive: true }); + yield dir; +} + +async function* getBinObj(dir) { + const dirents = await readdir(dir, { withFileTypes: true }); + + for (const dirent of dirents) { + if (!dirent.isDirectory()) continue; + const name = dirent.name; + + if (name === "node_modules") continue; + + const res = resolve(dir, dirent.name); + + if (name === "bin" || name === "obj") { + yield* removeFolder(res); + continue; + } + + yield* getBinObj(res); + } +} + +(async () => { + console.log("\x1b[36m%s\x1b[0m", "Deleting all BIN and OBJ folders..."); + + for await (const dir of getBinObj(".")) { + console.log("\x1b[33m%s\x1b[0m", `Removed: ${dir}`); + } + + console.log("\x1b[36m%s\x1b[0m", "All BIN and OBJ folders are deleted."); +})();