wp-generate
Version:
54 lines (51 loc) • 1.61 kB
JavaScript
var path = require('path');
var fs = require('fs');
var root = path.resolve(__dirname);
var ncp = require('ncp').ncp;
var color = require('colors');
/**
* [travel 遍历输出目录文件]
* @param {[String]} pathname [遍历的目录]
*/
var travel = function(pathname){
fs.readdir(pathname, function(err, files){
if (err) {
console.log(err.red);
return;
}
files.forEach(function(file){
var fullPath = pathname + '/' + file;
fs.stat(fullPath, function (err, stats) {
if (err) {
console.log(err.red);
return;
}
if(stats.isDirectory()){
travel(pathname + '/' + file);
}else{
console.log(('.' + pathname.split(process.cwd())[1] + '/' + file).green);
}
});
});
});
};
/**
* [run core项目文件拷贝操作]
* @param {[String]} pname [bin命令执行目录]
*/
exports.run = function(pname) {
var outputDir = process.cwd() + '/' + pname;
var count = 0;
console.log((pname+' 开始初始化......').red);
console.log(('------------------------------------------------------------------------------------').green);
ncp(root +'/core', outputDir, function (err) {
if (err) return console.log(err.red);
travel(outputDir);
var timer = setTimeout(function(){
if(count++) return;//不知道为什么ncp会调2次,加个判断
console.log(('------------------------------------------------------------------------------------').green);
console.log((pname+' 初始化完成!').red);
clearTimeout(timer);
}, 300);
});
};