You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			40 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
		
		
			
		
	
	
			40 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
| 
								 
											6 years ago
										 
									 | 
							
								'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));
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								});
							 |