2015-02-26 15:47:56 +00:00
|
|
|
(function() {
|
2015-03-04 18:40:40 +00:00
|
|
|
var _, actions, async, capitano, changeProjectDirectory, errors, plugins, resin, update;
|
2015-02-26 15:47:56 +00:00
|
|
|
|
|
|
|
_ = require('lodash');
|
|
|
|
|
|
|
|
async = require('async');
|
|
|
|
|
|
|
|
capitano = require('capitano');
|
|
|
|
|
|
|
|
resin = require('resin-sdk');
|
|
|
|
|
|
|
|
actions = require('./actions');
|
|
|
|
|
|
|
|
errors = require('./errors');
|
|
|
|
|
|
|
|
plugins = require('./plugins');
|
|
|
|
|
2015-03-04 18:40:40 +00:00
|
|
|
update = require('./update');
|
|
|
|
|
2015-02-26 15:47:56 +00:00
|
|
|
capitano.permission('user', function(done) {
|
|
|
|
return resin.auth.isLoggedIn(function(isLoggedIn) {
|
|
|
|
if (!isLoggedIn) {
|
|
|
|
return done(new Error('You have to log in'));
|
|
|
|
}
|
|
|
|
return done();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
capitano.command({
|
|
|
|
signature: '*',
|
|
|
|
action: function() {
|
|
|
|
return capitano.execute({
|
|
|
|
command: 'help'
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
capitano.globalOption({
|
|
|
|
signature: 'quiet',
|
|
|
|
description: 'quiet (no output)',
|
|
|
|
boolean: true,
|
|
|
|
alias: 'q'
|
|
|
|
});
|
|
|
|
|
|
|
|
capitano.globalOption({
|
|
|
|
signature: 'project',
|
|
|
|
parameter: 'path',
|
|
|
|
description: 'project path',
|
|
|
|
alias: 'j'
|
|
|
|
});
|
|
|
|
|
|
|
|
capitano.globalOption({
|
|
|
|
signature: 'no-color',
|
|
|
|
description: 'disable colour highlighting',
|
|
|
|
boolean: true
|
|
|
|
});
|
|
|
|
|
|
|
|
capitano.command(actions.info.version);
|
|
|
|
|
|
|
|
capitano.command(actions.help.help);
|
|
|
|
|
|
|
|
capitano.command(actions.auth.login);
|
|
|
|
|
|
|
|
capitano.command(actions.auth.logout);
|
|
|
|
|
|
|
|
capitano.command(actions.auth.signup);
|
|
|
|
|
|
|
|
capitano.command(actions.auth.whoami);
|
|
|
|
|
|
|
|
capitano.command(actions.app.create);
|
|
|
|
|
|
|
|
capitano.command(actions.app.list);
|
|
|
|
|
|
|
|
capitano.command(actions.app.info);
|
|
|
|
|
|
|
|
capitano.command(actions.app.remove);
|
|
|
|
|
|
|
|
capitano.command(actions.app.restart);
|
|
|
|
|
2015-03-09 13:14:39 +00:00
|
|
|
capitano.command(actions.app.associate);
|
|
|
|
|
2015-02-26 15:47:56 +00:00
|
|
|
capitano.command(actions.app.init);
|
|
|
|
|
|
|
|
capitano.command(actions.device.list);
|
|
|
|
|
|
|
|
capitano.command(actions.device.supported);
|
|
|
|
|
|
|
|
capitano.command(actions.device.rename);
|
|
|
|
|
|
|
|
capitano.command(actions.device.init);
|
|
|
|
|
|
|
|
capitano.command(actions.device.info);
|
|
|
|
|
|
|
|
capitano.command(actions.device.remove);
|
|
|
|
|
|
|
|
capitano.command(actions.device.identify);
|
|
|
|
|
|
|
|
capitano.command(actions.drive.list);
|
|
|
|
|
|
|
|
capitano.command(actions.notes.set);
|
|
|
|
|
|
|
|
capitano.command(actions.preferences.preferences);
|
|
|
|
|
|
|
|
capitano.command(actions.keys.list);
|
|
|
|
|
|
|
|
capitano.command(actions.keys.add);
|
|
|
|
|
|
|
|
capitano.command(actions.keys.info);
|
|
|
|
|
|
|
|
capitano.command(actions.keys.remove);
|
|
|
|
|
|
|
|
capitano.command(actions.env.list);
|
|
|
|
|
|
|
|
capitano.command(actions.env.add);
|
|
|
|
|
|
|
|
capitano.command(actions.env.rename);
|
|
|
|
|
|
|
|
capitano.command(actions.env.remove);
|
|
|
|
|
|
|
|
capitano.command(actions.logs.logs);
|
|
|
|
|
|
|
|
capitano.command(actions.os.download);
|
|
|
|
|
|
|
|
capitano.command(actions.os.install);
|
|
|
|
|
|
|
|
capitano.command(actions.examples.list);
|
|
|
|
|
|
|
|
capitano.command(actions.examples.clone);
|
|
|
|
|
|
|
|
capitano.command(actions.examples.info);
|
|
|
|
|
|
|
|
capitano.command(actions.plugin.list);
|
|
|
|
|
|
|
|
capitano.command(actions.plugin.install);
|
|
|
|
|
2015-03-02 14:41:08 +00:00
|
|
|
capitano.command(actions.plugin.update);
|
|
|
|
|
2015-02-26 15:47:56 +00:00
|
|
|
capitano.command(actions.plugin.remove);
|
|
|
|
|
2015-03-04 18:03:08 +00:00
|
|
|
capitano.command(actions.update.update);
|
|
|
|
|
2015-02-26 15:47:56 +00:00
|
|
|
changeProjectDirectory = function(directory) {
|
|
|
|
try {
|
|
|
|
return process.chdir(directory);
|
|
|
|
} catch (_error) {
|
|
|
|
return errors.handle(new Error("Invalid project: " + directory));
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
async.waterfall([
|
|
|
|
function(callback) {
|
2015-03-04 18:40:40 +00:00
|
|
|
return update.check(callback);
|
|
|
|
}, function(callback) {
|
2015-02-26 15:47:56 +00:00
|
|
|
return plugins.register('resin-plugin-', callback);
|
|
|
|
}, function(callback) {
|
|
|
|
var cli;
|
|
|
|
cli = capitano.parse(process.argv);
|
|
|
|
if (cli.global.quiet) {
|
|
|
|
console.info = _.noop;
|
|
|
|
}
|
|
|
|
if (cli.global.project != null) {
|
|
|
|
changeProjectDirectory(cli.global.project);
|
|
|
|
}
|
|
|
|
return capitano.execute(cli, callback);
|
|
|
|
}
|
|
|
|
], errors.handle);
|
|
|
|
|
|
|
|
}).call(this);
|