Files
svn/India/tech/tools/mergeTrack.js
2025-08-04 10:46:00 +08:00

55 lines
1.5 KiB
JavaScript

const fs = require('fs');
const path = require('path');
let mergeTrack = {
sourcePath: __dirname + '/' + process.argv[2],
destPath: __dirname + '/' + process.argv[3],
start() {
let jsonData = {};
jsonData.allInOneStr = '{';
this.traversalDir(this.sourcePath, jsonData);
let basic = jsonData.allInOneStr.substring(0, jsonData.allInOneStr.lastIndexOf(','));
basic += '}'
basic = basic.replace(/\\/g,"");//去掉空格
fs.writeFile(this.destPath, basic, (err) => {
if (err) {
console.error(err);
return;
}
console.log('Success to write file: ' +this.destPath);
});
},
//遍历文件夹找到
traversalDir(url, content) {
let files = [];
if( fs.existsSync(url) ) { //判断给定的路径是否存在
files = fs.readdirSync(url); //返回文件和子目录的数组
files.forEach(function(file,index){
let curPath = path.join(url,file);
if(fs.statSync(curPath).isDirectory()) { //同步读取文件夹文件,如果是文件夹,则函数回调
this.traversalDir(curPath,name,callBack);
} else {
let extrName = path.extname(curPath);
let baseName = path.basename(curPath,'.json');
let names = baseName.split('_');
if ( extrName === '.json' && baseName != 'path' ) {
let childStr = '"'+ names[names.length-1] +'"' + ":" + fs.readFileSync(curPath) + ',';
content.allInOneStr += childStr;
}
}
}.bind(this));
} else {
console.log("给定的路径不存在!",url);
}
return files;
},
};
module.exports = mergeTrack;
mergeTrack.start();