diff options
author | isaacs <i@izs.me> | 2012-06-15 10:00:30 -0700 |
---|---|---|
committer | isaacs <i@izs.me> | 2012-06-15 10:00:30 -0700 |
commit | 911b0fddd3483ac58c3a5cec17f4f1b0e533521a (patch) | |
tree | 23fdfe46b166bdcb6ebc3e040a14f9c3faf9c441 /deps/npm/node_modules/node-gyp/lib/install.js | |
parent | 1e0ce5d1bdf364bf6eca821635e3ae8e65807667 (diff) | |
download | node-911b0fddd3483ac58c3a5cec17f4f1b0e533521a.tar.gz |
Upgrade npm to 1.1.26
Diffstat (limited to 'deps/npm/node_modules/node-gyp/lib/install.js')
-rw-r--r-- | deps/npm/node_modules/node-gyp/lib/install.js | 79 |
1 files changed, 43 insertions, 36 deletions
diff --git a/deps/npm/node_modules/node-gyp/lib/install.js b/deps/npm/node_modules/node-gyp/lib/install.js index 2cf399364..4932b8f3b 100644 --- a/deps/npm/node_modules/node-gyp/lib/install.js +++ b/deps/npm/node_modules/node-gyp/lib/install.js @@ -12,11 +12,12 @@ var fs = require('graceful-fs') , rm = require('rimraf') , path = require('path') , zlib = require('zlib') + , log = require('npmlog') , semver = require('semver') , fstream = require('fstream') , request = require('request') , minimatch = require('minimatch') - , mkdir = require('./util/mkdirp') + , mkdir = require('mkdirp') , distUrl = 'http://nodejs.org/dist' , win = process.platform == 'win32' @@ -27,7 +28,7 @@ function install (gyp, argv, callback) { if (cb.done) return cb.done = true if (err) { - gyp.verbose('got an error, rolling back install') + log.warn('install', 'got an error, rolling back install') // roll-back the install if anything went wrong gyp.commands.remove([ version ], function (err2) { callback(err) @@ -40,7 +41,7 @@ function install (gyp, argv, callback) { // Determine which node dev files version we are installing var versionStr = argv[0] || gyp.opts.target || process.version - gyp.verbose('input version string', versionStr) + log.verbose('install', 'input version string', versionStr) // parse the version to normalize and ensure it's valid var version = semver.parse(versionStr) @@ -50,7 +51,7 @@ function install (gyp, argv, callback) { // "legacy" versions are 0.7 and 0.6 var isLegacy = semver.lt(versionStr, '0.8.0') - gyp.verbose('installing legacy version?', isLegacy) + log.verbose('installing legacy version?', isLegacy) if (semver.lt(versionStr, '0.6.0')) { return callback(new Error('Minimum target version is `0.6.0` or greater. Got: ' + versionStr)) @@ -60,12 +61,12 @@ function install (gyp, argv, callback) { if (version[5] === '-pre') { version[3] = +version[3] - 1 version[5] = null - gyp.verbose('-pre version detected, adjusting patch version') + log.verbose('-pre version detected, adjusting patch version') } // flatten version into String version = version.slice(1, 4).join('.') - gyp.verbose('installing version', version) + log.verbose('install', 'installing version: %s', version) // the directory where the dev files will be installed var devDir = path.resolve(gyp.devDir, version) @@ -73,31 +74,31 @@ function install (gyp, argv, callback) { // If '--ensure' was passed, then don't *always* install the version; // check if it is already installed, and only install when needed if (gyp.opts.ensure) { - gyp.verbose('--ensure was passed, so won\'t reinstall if already installed') + log.verbose('install', '--ensure was passed, so won\'t reinstall if already installed') fs.stat(devDir, function (err, stat) { if (err) { if (err.code == 'ENOENT') { - gyp.verbose('version not already installed, continuing with install', version) + log.verbose('install', 'version not already installed, continuing with install', version) go() } else { cb(err) } return } - gyp.verbose('version is already installed, need to check "installVersion"') + log.verbose('install', 'version is already installed, need to check "installVersion"') var installVersionFile = path.resolve(devDir, 'installVersion') fs.readFile(installVersionFile, 'ascii', function (err, ver) { if (err && err.code != 'ENOENT') { return cb(err) } var installVersion = parseInt(ver, 10) || 0 - gyp.verbose('got "installVersion":', installVersion) - gyp.verbose('needs "installVersion":', gyp.package.installVersion) + log.verbose('got "installVersion"', installVersion) + log.verbose('needs "installVersion"', gyp.package.installVersion) if (installVersion < gyp.package.installVersion) { - gyp.verbose('version is no good; reinstalling') + log.verbose('install', 'version is no good; reinstalling') go() } else { - gyp.verbose('version is good') + log.verbose('install', 'version is good') cb() } }) @@ -107,7 +108,8 @@ function install (gyp, argv, callback) { } function download (url, onError) { - gyp.info('downloading:', url) + log.http('GET', url) + var requestOpts = { uri: url , onResponse: true @@ -119,22 +121,26 @@ function install (gyp, argv, callback) { || process.env.HTTP_PROXY || process.env.npm_config_proxy if (proxyUrl) { - gyp.verbose('using proxy:', proxyUrl) + log.verbose('proxy', proxyUrl) requestOpts.proxy = proxyUrl } - return request(requestOpts, onError) + var req = request(requestOpts, onError) + req.on('response', function (res) { + log.http(res.statusCode, url) + }) + return req } function go () { + log.verbose('ensuring nodedir is created', devDir) + // first create the dir for the node dev files mkdir(devDir, function (err, created) { if (err) return cb(err) if (created) { - gyp.verbose('created:', devDir) - } else { - gyp.verbose('directory already existed:', devDir) + log.verbose('created nodedir', created) } // now download the node tarball @@ -148,18 +154,19 @@ function install (gyp, argv, callback) { // only .h header files and the gyp files get extracted function isValid () { var name = this.path.substring(devDir.length + 1) - , _valid = valid(name) + var isValid = valid(name) if (name === '' && this.type === 'Directory') { // the first directory entry is ok return true } - if (_valid) { - gyp.verbose('extracted file from tarball', name) + if (isValid) { + log.verbose('extracted file from tarball', name) extractCount++ } else { // invalid + log.silly('ignoring from tarball', name) } - return _valid + return isValid } gunzip.on('error', cb) @@ -185,7 +192,7 @@ function install (gyp, argv, callback) { if (extractCount === 0) { return cb(new Error('There was a fatal problem while downloading/extracting the tarball')) } - gyp.verbose('done parsing tarball') + log.verbose('tarball', 'done parsing tarball') var async = 0 if (isLegacy) { @@ -219,17 +226,17 @@ function install (gyp, argv, callback) { function copyLegacy (done) { // legacy versions of node (< 0.8) require the legacy files to be copied // over since they contain many bugfixes from the current node build system - gyp.verbose('copying "legacy" gyp configuration files for version', version) + log.verbose('legacy', 'copying "legacy" gyp configuration files for version', version) var legacyDir = path.resolve(__dirname, '..', 'legacy') - gyp.verbose('using "legacy" dir', legacyDir) - gyp.verbose('copying to "dev" dir', devDir) + log.verbose('legacy', 'using "legacy" dir', legacyDir) + log.verbose('legacy', 'copying to "dev" dir', devDir) var reader = fstream.Reader({ path: legacyDir, type: 'Directory' }) - , writer = fstream.Writer({ path: devDir, type: 'Directory' }) + var writer = fstream.Writer({ path: devDir, type: 'Directory' }) reader.on('entry', function onEntry (entry) { - gyp.verbose('reading entry', entry.path) + log.verbose('legacy', 'reading entry:', entry.path) entry.on('entry', onEntry) }) @@ -243,7 +250,7 @@ function install (gyp, argv, callback) { } function downloadNodeLib (done) { - gyp.verbose('on Windows; need to download `node.lib`...') + log.verbose('on Windows; need to download `node.lib`...') var dir32 = path.resolve(devDir, 'ia32') , dir64 = path.resolve(devDir, 'x64') , nodeLibPath32 = path.resolve(dir32, 'node.lib') @@ -251,15 +258,15 @@ function install (gyp, argv, callback) { , nodeLibUrl32 = distUrl + '/v' + version + '/node.lib' , nodeLibUrl64 = distUrl + '/v' + version + '/x64/node.lib' - gyp.verbose('32-bit node.lib dir', dir32) - gyp.verbose('64-bit node.lib dir', dir64) - gyp.verbose('`node.lib` 32-bit url', nodeLibUrl32) - gyp.verbose('`node.lib` 64-bit url', nodeLibUrl64) + log.verbose('32-bit node.lib dir', dir32) + log.verbose('64-bit node.lib dir', dir64) + log.verbose('`node.lib` 32-bit url', nodeLibUrl32) + log.verbose('`node.lib` 64-bit url', nodeLibUrl64) var async = 2 mkdir(dir32, function (err) { if (err) return done(err) - gyp.verbose('streaming 32-bit node.lib to:', nodeLibPath32) + log.verbose('streaming 32-bit node.lib to:', nodeLibPath32) var req = download(nodeLibUrl32) req.on('error', done) @@ -278,7 +285,7 @@ function install (gyp, argv, callback) { }) mkdir(dir64, function (err) { if (err) return done(err) - gyp.verbose('streaming 64-bit node.lib to:', nodeLibPath64) + log.verbose('streaming 64-bit node.lib to:', nodeLibPath64) var req = download(nodeLibUrl64) req.on('error', done) |