summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/node-gyp/bin
diff options
context:
space:
mode:
authorisaacs <i@izs.me>2012-04-17 17:14:25 -0700
committerisaacs <i@izs.me>2012-04-18 09:36:40 -0700
commitc8bbd13ea8d692f9f28f69cbb7ff321d7b998126 (patch)
treefb7074902b3332d2179c1e461277ada29016b531 /deps/npm/node_modules/node-gyp/bin
parentd8b33dc14787213a47a0f10f37137ec476d92952 (diff)
downloadnode-new-c8bbd13ea8d692f9f28f69cbb7ff321d7b998126.tar.gz
Upgrade npm to 1.1.17
Diffstat (limited to 'deps/npm/node_modules/node-gyp/bin')
-rwxr-xr-xdeps/npm/node_modules/node-gyp/bin/node-gyp.js102
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) {