36 lines
1.1 KiB
JavaScript
36 lines
1.1 KiB
JavaScript
import fs from "fs"
|
||
import { join, dirname } 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(dirname(distfilepath), { recursive: true });
|
||
}
|
||
fs.renameSync(join(srcpath, hash.substring(0, 2), hash), distfilepath);
|
||
});
|
||
}
|
||
|
||
main(); |