Skip to content

Commit

Permalink
Merge branch 'develop' into feature/apiKey
Browse files Browse the repository at this point in the history
  • Loading branch information
InconceivableDuck committed Dec 17, 2013
2 parents f73c4e0 + 4f9692f commit 1f3ec24
Show file tree
Hide file tree
Showing 7 changed files with 122 additions and 12 deletions.
46 changes: 46 additions & 0 deletions lib/commands/config.js
@@ -0,0 +1,46 @@
var modulus = require('../modulus'),
userConfig = require('../common/api').userConfig,
util = require('util')
url = require('url');

const invalid = ['username', 'userId', 'apiKey'];

exports.get = function list(name, cb) {
userConfig.load();

if (!userConfig.data.hasOwnProperty(name)) {
return cb('Configuration name not found.');
}

modulus.io.print(util.format('%s: %s', name, userConfig.data[name]).input);

return cb();
};

exports.set = function set(name, value, cb) {
if (invalid.indexOf(name.toLowerCase()) >= 0) {
//
// Don't allow username, userId, or apiKey to be set by the user.
//
return cb(util.format('Cannot set value of \'%s\'', name));
}

userConfig.load();

if (!userConfig.data) userConfig.data = {};

try {
//
// Attempt to parse the value the JSON. This will ensure that Booleans are
// correctly stored as JSON rather than a string.
//
userConfig.data[name] = JSON.parse(value);
} catch (e) {
userConfig.data[name] = value;
}

userConfig.save(userConfig.data);
modulus.io.print(util.format('Saved \'%s\' to \'%s\'', value, name).input);

return cb();
};
29 changes: 22 additions & 7 deletions lib/commands/user.js
@@ -1,7 +1,8 @@
var modulus = require('../modulus'),
userConfig = require('../common/api').userConfig,
userController = require('../controllers/user'),
error = require('../common/error');
error = require('../common/error')
util = require('util');

var user = {};

Expand All @@ -26,11 +27,25 @@ user.authenticate = function(username, password, loginProvided, passwordProvided
}
}
}
var udata = {
username: u.username,
userId : u.id,
apiKey : u.authToken
};

userConfig.load();
var udata = null;

if (userConfig.data) {
// Don't overwrite existing data.
udata = util._extend(userConfig.data, {
username: u.username,
userId : u.id,
apiKey : u.authToken
});
} else {
udata = {
username: u.username,
userId : u.id,
apiKey : u.authToken
};
}

userConfig.save(udata);
modulus.io.success('Signed in as user ' + u.username.data);
return cb();
Expand All @@ -46,7 +61,7 @@ user.authenticateGithub = function(username, password, loginProvided, passwordPr
err = error.handleApiError(err, 'LOGIN', cb);
if(err.length > 0) {
modulus.io.error(err);

if(loginProvided && passwordProvided) {
return;
} else if(loginProvided) {
Expand Down
22 changes: 19 additions & 3 deletions lib/common/api.js
@@ -1,7 +1,23 @@
var librarian = require('../librarian/librarian').init('api.onmodulus.net', 443, true),
UserConfig = require('./userConfig');
var UserConfig = require('./userConfig'),
url = require('url'),
librarian = require('../librarian/librarian'),
userConfig = new UserConfig();

userConfig.load();

if (userConfig.data && userConfig.data.api_uri) {
var url = url.parse(userConfig.data.api_uri);

if (url.protocol === 'https:') {
librarian.init(url.hostname, url.port || 443, true);
} else {
librarian.init(url.hostname, url.port || 80, false);
}
} else {
librarian.init('api.onmodulus.net', 443, true);
}

module.exports = {
librarian : librarian,
userConfig : new UserConfig()
};
};
2 changes: 1 addition & 1 deletion lib/controllers/project.js
Expand Up @@ -546,7 +546,7 @@ Project.prototype.isMeteor = function(dir, callback) {
//-----------------------------------------------------------------------------
Project.prototype.demeteorize = function(dir, nodeVersion, callback) {
var out = path.join(dir, '.demeteorized'),
nodeVersion = nodeVersion || 'v0.8.24';
nodeVersion = nodeVersion || 'v0.10.22';

if(fs.existsSync(out)) {
fsTools.removeSync(out);
Expand Down
2 changes: 2 additions & 0 deletions lib/modulus.js
Expand Up @@ -26,6 +26,7 @@ modulus.commands = {};
modulus.commands.user = require('./commands/user');
modulus.commands.project = require('./commands/project');
modulus.commands.env = require('./commands/env');
modulus.commands.config = require('./commands/config')
modulus.commands.misc = require('./commands/misc');

modulus.runCommand = function(command, args, authRequired) {
Expand Down Expand Up @@ -74,6 +75,7 @@ modulus.routes = [
require('./routes/user')(modulus),
require('./routes/project')(modulus),
require('./routes/env')(modulus),
require('./routes/config')(modulus),
require('./routes/misc')(modulus)
];

Expand Down
31 changes: 31 additions & 0 deletions lib/routes/config.js
@@ -0,0 +1,31 @@
module.exports = function(modulus) {
var help = new modulus.help('Configuration', modulus);

help.add('get', function() {
this.line('config get <name>'.verbose);
this.line('Get a configuration value.'.input);
});

modulus.program
.command('config get', '<name>')
.description('Get a configuration value.')
.on('--help', help.commands.get)
.action(function(name) {
modulus.runCommand(modulus.commands.config.get, [name], false);
});

help.add('set', function() {
this.line('config set <name> <value>'.verbose);
this.line('Set a configuration value.'.input);
});

modulus.program
.command('config set', '<name> <value>')
.description('Set a configuration value.')
.on('--help', help.commands.set)
.action(function(name, value) {
modulus.runCommand(modulus.commands.config.set, [name, value], false);
});

return { base: 'config', help: help };
};
2 changes: 1 addition & 1 deletion package.json
Expand Up @@ -13,7 +13,7 @@
"command line",
"modulusio"
],
"version": "0.2.1",
"version": "0.2.2-2",
"author": "Modulus <feedback@modulus.io>",
"maintainers": [
"zwigby <ckey@paranoidferret.com>",
Expand Down

0 comments on commit 1f3ec24

Please sign in to comment.