diff --git a/utils.js b/utils.js index c4d7491..60db42f 100644 --- a/utils.js +++ b/utils.js @@ -39,7 +39,7 @@ exports.patchData = function ( data ){ var fetchAndCacheMetadataCmd =[ '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( ';' ); var fetchAndCacheTarballCmd = [ @@ -50,17 +50,20 @@ var fetchAndCacheTarballCmd = [ exports.fetchAndCacheMetadata = function ( packageName, cacheFile ){ var packageCacheDir = path.dirname( cacheFile ); + var packageNameEncoded = encodeURIComponent(packageName).replace(/^%40/, '@'); return exec( fetchAndCacheMetadataCmd, { packageCacheDir: packageCacheDir, REGISTRY_NAME: REGISTRY_NAME, - packageName: packageName, + packageNameEncoded: packageNameEncoded, cacheFile: cacheFile, }); }; 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 ); return exec( fetchAndCacheTarballCmd, {