加入對BMCLAPI還原功能
This commit is contained in:
42
bmcl.js
Normal file
42
bmcl.js
Normal file
@@ -0,0 +1,42 @@
|
||||
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"));
|
||||
|
||||
json.forEach(element => {
|
||||
let hash = element.hash;
|
||||
let srcfilepath = join(srcpath, hash.substring(0, 2), hash);
|
||||
let distfilepath = join(distpath, element.path);
|
||||
|
||||
if (!fs.existsSync(distfilepath)) {
|
||||
fs.mkdirSync(dirname(distfilepath), { recursive: true });
|
||||
}
|
||||
|
||||
if (fs.existsSync(srcfilepath)) {
|
||||
fs.copyFileSync(srcfilepath, distfilepath);
|
||||
} else {
|
||||
console.log(`文件不存在:${srcfilepath}`)
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
main();
|
||||
13
package-lock.json
generated
Normal file
13
package-lock.json
generated
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"name": "mchashtoname",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "mchashtoname",
|
||||
"version": "1.0.0",
|
||||
"license": "ISC"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,8 @@
|
||||
"main": "index.js",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"test": "node index.js"
|
||||
"mc": "node mc.js",
|
||||
"bmcl": "node bmcl.js"
|
||||
},
|
||||
"author": "",
|
||||
"license": "ISC"
|
||||
|
||||
Reference in New Issue
Block a user