import * as path from 'path'; import * as fs from 'fs'; import { FileUtils } from './FileUtils'; export default class ExtendsCode { /** 删除没有扩展的文件 */ static Delete(dir: string, lineNum: number = 10) { var paths = fs.readdirSync(dir); //同步读取当前目录 for(var i = 0, len = paths.length; i < len; i ++) { var name = paths[i]; var itemPath = path.join(dir, name); var stat = fs.lstatSync(itemPath); if(stat.isFile()) { var content = fs.readFileSync(itemPath, { encoding: "utf8"}); var num = content.split('\n').length; if(num == lineNum) { console.log("del: ", itemPath); FileUtils.deleteFileOrDir(itemPath); } } else if(stat.isDirectory()) { this.Delete(itemPath, lineNum); } } } /** 替换 */ static Replace(dir: string) { var paths = fs.readdirSync(dir); //同步读取当前目录 var dirName = path.basename(dir); for(var i = 0, len = paths.length; i < len; i ++) { var name = paths[i]; var itemPath = path.join(dir, name); var stat = fs.lstatSync(itemPath); if(stat.isFile()) { var clsname = name.split('.')[0]; var a1 = `extends ${clsname}Struct`; var b1 = `extends fguistruct.${dirName}.${clsname}Struct`; var a2 = `import ${clsname}Struct from "../../Generates/${dirName}/${clsname}Struct";`; var b2 = ""; // console.log("==============="); // console.log(clsname); // console.log(itemPath); // console.log(a1, b1); // console.log(a2, b2); var content = fs.readFileSync(itemPath, { encoding: "utf8"}); content = content.replace(a1, b1).replace(a2, b2); fs.writeFileSync(itemPath, content, {flag: "w", encoding: "utf8"}); } else if(stat.isDirectory()) { this.Replace(itemPath); } } } }