| 'use strict'; |
| |
| var fs = require('fs-extra'), |
| path = require('path'); |
| |
| var _ = require('lodash'), |
| glob = require('glob'), |
| moment = require('moment'), |
| ncp = require('ncp').ncp; |
| |
| var cwd = process.cwd(); |
| |
| var packages = _.transform(glob.sync(path.join(cwd, 'lodash.*')), function(result, pathname) { |
| var stat = fs.statSync(path.join(pathname, 'index.js')); |
| if (!moment(stat.mtime).isSame(stat.birthtime)) { |
| result[path.basename(pathname)] = require(path.join(pathname, 'package.json')); |
| } |
| }, {}); |
| |
| var grouped = _.groupBy(packages, 'version'); |
| |
| _.forOwn(grouped, function(packages, version) { |
| var pathname = path.join(cwd, version); |
| if (!fs.existsSync(pathname)) { |
| fs.ensureDirSync(pathname); |
| } |
| _.each(packages, function(pkg) { |
| var source = path.join(cwd, pkg.name), |
| destination = path.join(pathname, pkg.name); |
| |
| ncp(source, destination, function (err) { |
| if (err) { |
| console.error(err); |
| return; |
| } |
| // console.log('copied ' + pkg.name + ' to ' + path.join(version, pkg.name)); |
| }); |
| }); |
| }); |