datamax-cli
Version:
datamax plugin cli
78 lines (75 loc) • 2.1 kB
JavaScript
const fs = require("fs");
var path = require("path");
function buildDir(dir) {
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir);
}
}
module.exports = {
isAbsPath: (p) => {
if (process.platform.indexOf("win") === 0) {
return /^\w:/.test(p);
} else {
return /^\//.test(p);
}
},
isNone: (v) => {
return v === undefined;
},
randomWord: () => {
return (
"0000" + ((Math.random() * Math.pow(36, 5)) << 0).toString(36)
).slice(-5);
},
isCN: function isChinese(temp) {
var re = /[^\u4E00-\u9FA5]/;
if (re.test(temp)) return false;
return true;
},
mkdir: function (dir) {
if (Array.isArray(dir)) {
let currDir = dir[0];
buildDir(currDir);
for (let i = 1; i < dir.length; i++) {
currDir = path.join(currDir, `./${dir[i]}`);
buildDir(currDir);
}
return currDir;
} else {
buildDir(dir);
}
return dir;
},
copydir: function (originalUrl, targetUrl) {
try {
// 读取原路径
const STATUS = fs.statSync(originalUrl);
// 获得原路径的末尾部分
// 此部分亦可通过path模块中的basename()方法提取
const fileName = originalUrl.split("/")[
originalUrl.split("/").length - 1
];
// 如果原路径是文件
if (STATUS.isFile()) {
// 在新目录中创建同名文件,并将原文件内容追加到新文件中
fs.writeFileSync(
`${targetUrl}/${fileName}`,
fs.readFileSync(originalUrl)
);
//如果原路径是目录
} else if (STATUS.isDirectory()) {
//在新路径中创建新文件夹
fs.mkdirSync(`${targetUrl}/${fileName}`);
//如果原路径是非空目录,遍历原路径
//空目录时无法使用forEach
fs.readdirSync(originalUrl).forEach((item) => {
//更新参数,递归调用
copydir(`${originalUrl}/${item}`, `${targetUrl}/${fileName}`);
});
}
} catch (error) {
console.log(error);
console.log("路径" + "有误");
}
},
};