handle @ in scoped package names

This commit is contained in:
mathew
2016-08-18 21:55:50 +10:00
parent 4932e5491e
commit 09780842ec
+6 -3
View File
@@ -39,7 +39,7 @@ exports.patchData = function ( data ){
var fetchAndCacheMetadataCmd =[ var fetchAndCacheMetadataCmd =[
'mkdir -p $packageCacheDir', 'mkdir -p $packageCacheDir',
'wget -nv "http://$REGISTRY_NAME/$packageName" -O $cacheFile || { wgetExitStatus=$? && rm $cacheFile; exit $wgetExitStatus ; }' 'wget -nv "http://$REGISTRY_NAME/$packageNameEncoded" -O $cacheFile || { wgetExitStatus=$? && rm $cacheFile; exit $wgetExitStatus ; }'
].join( ';' ); ].join( ';' );
var fetchAndCacheTarballCmd = [ var fetchAndCacheTarballCmd = [
@@ -50,17 +50,20 @@ var fetchAndCacheTarballCmd = [
exports.fetchAndCacheMetadata = function ( packageName, cacheFile ){ exports.fetchAndCacheMetadata = function ( packageName, cacheFile ){
var packageCacheDir = path.dirname( cacheFile ); var packageCacheDir = path.dirname( cacheFile );
var packageNameEncoded = encodeURIComponent(packageName).replace(/^%40/, '@');
return exec( fetchAndCacheMetadataCmd, { return exec( fetchAndCacheMetadataCmd, {
packageCacheDir: packageCacheDir, packageCacheDir: packageCacheDir,
REGISTRY_NAME: REGISTRY_NAME, REGISTRY_NAME: REGISTRY_NAME,
packageName: packageName, packageNameEncoded: packageNameEncoded,
cacheFile: cacheFile, cacheFile: cacheFile,
}); });
}; };
exports.fetchAndCacheTarball = function ( packageName, version, tarballPath ){ exports.fetchAndCacheTarball = function ( packageName, version, tarballPath ){
var tarballUrl = 'http://' + REGISTRY_NAME + '/' + packageName + '/-/' + packageName + '-' + version + '.tgz'; var packageNameEncoded = encodeURIComponent(packageName).replace(/^%40/, '@');
var tarballUrl = 'http://' + REGISTRY_NAME + '/' + packageNameEncoded + '/-/' + packageNameEncoded + '-' + version + '.tgz';
var packageTarballDir = path.dirname( tarballPath ); var packageTarballDir = path.dirname( tarballPath );
return exec( fetchAndCacheTarballCmd, { return exec( fetchAndCacheTarballCmd, {