-function login(server) {
- console.log('Using server', server);
- config.set('server', server);
+function login(uri) {
+ var tmp = url.parse(uri);
+ if (!tmp.slashes) tmp = url.parse('https://' + uri);
+
+ var server = tmp.protocol + '//' + tmp.host;
+
+ console.log('Using server', server.cyan);
+
+ var username = readlineSync.question('Username: ');
+ var password = readlineSync.question('Password: ', { noEchoBack: true });
+
+ superagent.get(server + API + '/').query({ username: username, password: password }).end(function (error, result) {
+ if (error && error.code === 'ENOTFOUND') {
+ console.log('Server %s not found.'.red, server.bold);
+ process.exit(1);
+ }
+ if (error && error.code) {
+ console.log('Failed to connect to server %s'.red, server.bold, error.code);
+ process.exit(1);
+ }
+ if (result.status === 401) {
+ console.log('Login failed.'.red);
+ process.exit(1);
+ }
+
+ config.set('server', server);
+ config.set('username', username);
+
+ // TODO this is clearly bad and needs fixing
+ config.set('password', password);
+
+ gQuery = { username: username, password: password };
+
+ console.log('Login successful'.green);
+ });