diff options
author | isaacs <i@izs.me> | 2012-04-17 17:14:25 -0700 |
---|---|---|
committer | isaacs <i@izs.me> | 2012-04-18 09:36:40 -0700 |
commit | c8bbd13ea8d692f9f28f69cbb7ff321d7b998126 (patch) | |
tree | fb7074902b3332d2179c1e461277ada29016b531 /deps/npm/node_modules/node-gyp/bin | |
parent | d8b33dc14787213a47a0f10f37137ec476d92952 (diff) | |
download | node-new-c8bbd13ea8d692f9f28f69cbb7ff321d7b998126.tar.gz |
Upgrade npm to 1.1.17
Diffstat (limited to 'deps/npm/node_modules/node-gyp/bin')
-rwxr-xr-x | deps/npm/node_modules/node-gyp/bin/node-gyp.js | 102 |
1 files changed, 67 insertions, 35 deletions
diff --git a/deps/npm/node_modules/node-gyp/bin/node-gyp.js b/deps/npm/node_modules/node-gyp/bin/node-gyp.js index 328e1a94ee..a7347cca50 100755 --- a/deps/npm/node_modules/node-gyp/bin/node-gyp.js +++ b/deps/npm/node_modules/node-gyp/bin/node-gyp.js @@ -16,12 +16,17 @@ var gyp = require('../') , cursor = ansi(process.stderr) /** - * Process and execute the selected command. + * Process and execute the selected commands. */ var prog = gyp() prog.parseArgv(process.argv) +if (prog.todo.length === 0) { + return prog.usageAndExit() +} + + /** * Set up logging handlers. */ @@ -36,6 +41,18 @@ prog.on('info', function () { cursor.write('\n') }) +prog.on('warn', function () { + cursor.fg.yellow().bg.red().write('warn') + .fg.reset().bg.reset().write(' ') + .fg.grey().write(arguments[0]) + .write(' ') + .reset() + for (var i=1, l=arguments.length; i<l; i++) { + cursor.write(arguments[i] + ' ') + } + cursor.write('\n') +}) + if (prog.opts.verbose) { prog.on('verbose', function () { cursor.fg.cyan().write('verb ') @@ -54,48 +71,63 @@ prog.on('spawn', function (command, args, proc) { .reset().write(inspect(args) + '\n') }) +prog.info('it worked if it ends with', 'ok') + /** - * Process and execute the selected command. + * Change dir if -C/--directory was passed. */ -if (!prog.command) { - return prog.usageAndExit() -} - -prog.info('it worked if it ends with', 'ok') - -if (typeof prog.commands[prog.command] != 'function') { - cursor.fg.red().write('ERR! ') - .fg.reset().write('Unknown command "' + prog.command + '"\n') - cursor.fg.red().write('ERR! ') - .fg.reset().write('not ok\n') - process.exit(1) +var dir = prog.opts.directory +if (dir) { + var fs = require('fs') + try { + var stat = fs.statSync(dir) + if (stat.isDirectory()) { + prog.info('chdir:', dir) + process.chdir(dir) + } else { + prog.warn(dir + ' is not a directory') + } + } catch (e) { + prog.warn('directory:', e.message) + } } +// start running the given commands! var completed = false -prog.commands[prog.command](prog.argv, function (err) { - completed = true - if (err) { - cursor.fg.red().write('ERR! ') - .fg.reset().write(err.stack + '\n') - cursor.fg.red().write('ERR! ') - .fg.reset().write('not ok\n') - return process.exit(1) +run() + +function run () { + if (prog.todo.length === 0) { + // done! + completed = true + prog.info('done', 'ok') + return } - if (prog.command == 'list') { - var versions = arguments[1] - if (versions.length > 0) { - versions.forEach(function (version) { - console.log(version) - }) - } else { - prog.info('No node development files installed. Use `node-gyp install` to install a version.') + var command = prog.todo.shift() + prog.commands[command](prog.argv.slice(), function (err) { + if (err) { + cursor.fg.red().write('ERR! ') + .fg.reset().write(err.stack + '\n') + cursor.fg.red().write('ERR! ') + .fg.reset().write('not ok\n') + return process.exit(1) } - } else if (arguments.length >= 2) { - console.log.apply(console, [].slice.call(arguments, 1)) - } - prog.info('done', 'ok') -}) + if (command == 'list') { + var versions = arguments[1] + if (versions.length > 0) { + versions.forEach(function (version) { + console.log(version) + }) + } else { + prog.info('No node development files installed. Use `node-gyp install` to install a version.') + } + } else if (arguments.length >= 2) { + console.log.apply(console, [].slice.call(arguments, 1)) + } + process.nextTick(run) + }) +} process.on('exit', function (code) { if (!completed && !code) { |