diff --git a/package.json b/package.json index 7a5d1bc9..c73783ef 100644 --- a/package.json +++ b/package.json @@ -62,8 +62,8 @@ "c9.ide.language.html.diff": "#24f3608d26", "c9.ide.language.javascript": "#d1a479805c", "c9.ide.language.javascript.immediate": "#c8b1e5767a", - "c9.ide.language.javascript.eslint": "#132107aac3", - "c9.ide.language.javascript.tern": "#0c2f97f6fa", + "c9.ide.language.javascript.eslint": "#db65ba46be", + "c9.ide.language.javascript.tern": "#b55d0069bb", "c9.ide.language.javascript.infer": "#325ac6880e", "c9.ide.language.jsonalyzer": "#4b329741b1", "c9.ide.language.codeintel": "#046d39603b", @@ -72,7 +72,7 @@ "c9.ide.find": "#e33fbaed2f", "c9.ide.find.infiles": "#c0a13737ef", "c9.ide.find.replace": "#8cbce45290", - "c9.ide.run.debug": "#6b34b5a2eb", + "c9.ide.run.debug": "#286975f644", "c9.automate": "#47e2c429c9", "c9.ide.ace.emmet": "#6dc4585e02", "c9.ide.ace.gotoline": "#a8ff07c8f4", @@ -109,7 +109,7 @@ "c9.ide.run.build": "#0598fff697", "c9.ide.run.debug.xdebug": "#9956689819", "c9.ide.save": "#86f0f38160", - "c9.ide.scm": "#ca3c94b84f", + "c9.ide.scm": "#c7385f7f7c", "c9.ide.terminal.monitor": "#1a4092ede2", "c9.ide.test": "#a282ec1619", "c9.ide.test.mocha": "#fc053b23d2", diff --git a/plugins/c9.cli/auth.bootstrap.js b/plugins/c9.cli/auth.bootstrap.js index 684225f1..b0afc78e 100644 --- a/plugins/c9.cli/auth.bootstrap.js +++ b/plugins/c9.cli/auth.bootstrap.js @@ -8,7 +8,7 @@ define(function(require, exports, module) { var http = imports.http; var fs = require("fs"); - var read = require("read"); + var _read = require("read"); /***** Initialization *****/ @@ -21,15 +21,35 @@ define(function(require, exports, module) { /***** Methods *****/ + function read(options, cb) { + _read(options, function(err, result) { + if (err && err.message == 'canceled') { + console.log("\n"); + if (options.retry) + return process.exit(1); + else { + options.retry = 1; + console.log("(^C again to quit)"); + return read(options, cb); + } + } + cb(err, result); + }); + } + function readCredentials(callback){ read({ prompt: "Cloud9 Username:" }, function(error, username) { if (error) return callback(error); - + if (!username) { + console.error("username is required"); + return process.exit(1); + } read({ prompt: "Password:", - silent: true + silent: true, + replace: "*" }, function(error, password) { if (error) return callback(error); @@ -64,7 +84,11 @@ define(function(require, exports, module) { client_id: "cli" } }, function(err, token) { - if (err) return callback(err); + if (err) { + var message = /id="error_header">([^<]*)