UNPKG

datamax-cli

Version:

datamax plugin cli

78 lines (75 loc) 2.1 kB
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("路径" + "有误"); } }, };