You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

30 lines
1.1 KiB

var execSync = require('child_process').execSync;
var path = require('path');
var config = require( __dirname + '/./config' );
var REGISTRY_NAME = config.REGISTRY_NAME;
var LOCAL_REGISTRY = config.LOCAL_REGISTRY;
exports.patchData = function ( data ){
Object.keys(data.versions).forEach( function( v ){
var val = data.versions[v];
val.dist.tarball = val.dist.tarball.replace( REGISTRY_NAME, LOCAL_REGISTRY );
});
};
exports.fetchAndCacheMetadata = function ( packageName, cacheFile ){
var packageCacheDir = path.dirname( cacheFile );
execSync( 'mkdir ' + packageCacheDir );
execSync( 'wget http://' + REGISTRY_NAME + '/' + packageName + ' -O ' + cacheFile );
};
exports.fetchAndCacheTarball = function ( packageName, version, tarballPath ){
var tarballUrl = 'http://' + REGISTRY_NAME + '/' + packageName + '/-/' + packageName + '-' + version + '.tgz';
var packageTarballDir = path.dirname( tarballPath );
execSync( 'mkdir -p ' + packageTarballDir );
execSync( 'wget ' + tarballUrl + ' -O ' + tarballPath );
execSync( 'cd ' + packageTarballDir + ';tar -xzf package.tgz package/package.json' );
};