feat(build): add general copy/multicopy method
This commit is contained in:
@ -8,17 +8,37 @@ module.exports = {
|
||||
streamToPromise: streamToPromise,
|
||||
insertSrcFolder: insertSrcFolder,
|
||||
filterByFile: filterByFile,
|
||||
forEachSubDir: forEachSubDir
|
||||
subDirs: subDirs,
|
||||
forEachSubDir: forEachSubDir,
|
||||
forEachSubDirSequential: forEachSubDirSequential
|
||||
};
|
||||
|
||||
function subDirs(dir) {
|
||||
return [].slice.call(glob.sync('*/', {cwd: dir}));
|
||||
}
|
||||
|
||||
function forEachSubDir(dir, callback) {
|
||||
var moduleFolders = [].slice.call(glob.sync(dir + '/*'));
|
||||
return Q.all(moduleFolders.map(function(subDir) {
|
||||
return callback(subDir);
|
||||
var dirs = subDirs(dir);
|
||||
return Q.all(dirs.map(function(subdir) {
|
||||
return callback(path.join(dir, subdir));
|
||||
}));
|
||||
};
|
||||
|
||||
function forEachSubDirSequential(dir, callback) {
|
||||
var dirs = subDirs(dir);
|
||||
return next(0);
|
||||
|
||||
function next(index) {
|
||||
if (index < dirs.length) {
|
||||
return callback(path.join(dir, dirs[index])).then(function() {
|
||||
return next(index+1);
|
||||
});
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function processToPromise(process) {
|
||||
var defer = Q.defer();
|
||||
process.on('close', function(code) {
|
||||
|
Reference in New Issue
Block a user