import fs from "fs" import { join } from "path" process.stdin.setEncoding("utf8"); function readlineSync(msg = "Input:") { return new Promise((resolve, reject) => { console.log(msg) process.stdin.resume(); process.stdin.on("data", function (data) { process.stdin.pause(); resolve(data.substring(0, data.length - 2)); }); }); } // entry point async function main() { let jsonpath = await readlineSync("Input the JSON Path:"); let srcpath = await readlineSync("Input the src Path:"); let distpath = await readlineSync("Input the dist Path:"); let json = JSON.parse(fs.readFileSync(jsonpath, "utf8")); let objects = json.objects; Object.keys(objects).forEach(element => { let hash = objects[element].hash; let distfilepath = join(distpath, element); if (!fs.existsSync(distfilepath)) { fs.mkdirSync(distfilepath, { recursive: true }); } fs.renameSync(join(srcpath, hash.substring(0, 2), hash), distfilepath); }); } main();