r8s-cli
Version:
A command line tool for Reaction Commerce to be used with kubernetes
176 lines (152 loc) • 6.77 kB
JavaScript
require('babel-polyfill');
var _yargs = require('yargs');
var _yargs2 = _interopRequireDefault(_yargs);
var _updateNotifier = require('update-notifier');
var _updateNotifier2 = _interopRequireDefault(_updateNotifier);
var _utils = require('./utils');
var _commands = require('./commands');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// do something with any unhandled rejections
// from async/await functions without a try/catch
process.on('unhandledRejection', function (err) {
_utils.Log.error(err);
process.exit(1);
});
if (process.env.REACTION_CLI_DEBUG === 'true') {
/* eslint-disable no-console */
console.time('Reaction CLI runtime');
process.on('exit', function () {
return console.timeEnd('Reaction CLI runtime');
});
/* eslint-enable no-console */
}
// Notify about reaction-cli updates
var pkg = require('../package.json');
(0, _updateNotifier2.default)({ pkg: pkg }).notify({ isGlobal: true });
(0, _utils.initialize)();
var args = _yargs2.default.usage('$0 <command> [options]').version(function () {
var versions = (0, _utils.getVersions)();
_utils.Log.info('\nNode: ' + _utils.Log.magenta(versions.node));
_utils.Log.info('NPM: ' + _utils.Log.magenta(versions.npm));
if (versions.meteorNode) {
_utils.Log.info('Meteor Node: ' + _utils.Log.magenta(versions.meteorNode));
}
if (versions.meteorNode) {
_utils.Log.info('Meteor NPM: ' + _utils.Log.magenta(versions.meteorNpm));
}
if (versions.yarn) {
_utils.Log.info('Yarn: ' + _utils.Log.magenta(versions.yarn));
}
_utils.Log.info('Reaction CLI: ' + _utils.Log.magenta(pkg.version));
if (versions.reaction) {
_utils.Log.info('Reaction: ' + _utils.Log.magenta(versions.reaction));
if (versions.reactionBranch) {
_utils.Log.info('Reaction branch: ' + _utils.Log.magenta(versions.reactionBranch));
}
}
if (versions.docker) {
_utils.Log.info('Docker: ' + _utils.Log.magenta(versions.docker));
}
return '';
}).alias('v', 'version').describe('v', 'Show the current version of Reaction CLI').command('init', 'Create a new Reaction app (will create a new folder)', function () {
return _yargs2.default.option('b', {
alias: 'branch',
describe: 'The branch to clone from Github [default: master]',
default: 'master'
});
}, function (argv) {
return (0, _utils.checkDeps)(['git', 'meteor'], function () {
return (0, _commands.init)(argv);
});
}).command('config', 'Get/set config values', function (options) {
(0, _commands.config)(options);
}).command('run', 'Start Reaction in development mode', function (options) {
(0, _utils.checkDeps)(['app', 'meteor'], function () {
return (0, _commands.run)(options);
});
}).command('debug', 'Start Reaction in debug mode', function (options) {
(0, _utils.checkDeps)(['app', 'meteor'], function () {
return (0, _commands.run)(options);
});
}).command('test', 'Run integration or unit tests', function (options) {
(0, _utils.checkDeps)(['app', 'meteor'], function () {
return (0, _commands.test)(options);
});
}).command('pull', 'Pull Reaction updates from Github and install NPM packages', function (options) {
(0, _utils.checkDeps)(['app', 'meteor'], function () {
return (0, _commands.pull)(options);
});
}).command('update', 'Update Atmosphere and NPM packages', function (options) {
(0, _utils.checkDeps)(['app', 'meteor'], function () {
return (0, _commands.update)(options);
});
}).command('up', 'Update Atmosphere and NPM packages', function (options) {
(0, _utils.checkDeps)(['app', 'meteor'], function () {
return (0, _commands.update)(options);
});
}).command('reset', 'Reset the database and (optionally) delete build files', function (options) {
(0, _utils.checkDeps)(['app', 'meteor'], function () {
return (0, _commands.reset)(options);
});
}).command('plugins', 'Manage your Reaction plugins', function (options) {
(0, _utils.checkDeps)(['app'], function () {
return (0, _commands.plugins)(options);
});
}).command('styles', 'Manage your Reaction styles (css, less, stylus, scss)', function (options) {
(0, _utils.checkDeps)(['app'], function () {
return (0, _commands.styles)(options);
});
}).command('build', 'Build a production Docker image', function (options) {
(0, _utils.checkDeps)(['app'], function () {
return (0, _commands.build)(options);
});
}).command('register', 'Register an account with Reaction', function (options) {
return (0, _commands.register)(options);
}).command('login', 'Login to Reaction', function (options) {
return (0, _commands.login)(options);
}).command('logout', 'Logout of Reaction', function (options) {
return (0, _commands.logout)(options);
}).command('whoami', 'Check which account you are logged in as', function (options) {
(0, _utils.checkDeps)(['platform'], function () {
return (0, _commands.whoami)(options);
});
}).command('account', 'Manage your Reaction Platform account', function (options) {
return (0, _commands.account)(options);
}).command('keys', 'Manage your SSH keys', function (options) {
(0, _utils.checkDeps)(['platform'], function () {
return (0, _commands.keys)(options);
});
}).command('apps', 'Manage your apps deployments', function (options) {
(0, _utils.checkDeps)(['platform'], function () {
return (0, _commands.apps)(options);
});
}).command('deploy', 'Deploy an app', function (options) {
(0, _utils.checkDeps)(['platform'], function () {
return (0, _commands.deploy)(options);
});
}).command('env', 'Manage environment variables for an app deployment', function (options) {
(0, _utils.checkDeps)(['platform'], function () {
return (0, _commands.env)(options);
});
}).command('domain', 'Set/unset a custom domain name for an app', function (options) {
(0, _utils.checkDeps)(['platform'], function () {
return (0, _commands.domains)(options);
});
}).command('logs', 'Get container logs for an app', function (options) {
(0, _utils.checkDeps)(['platform'], function () {
return (0, _commands.logs)(options);
});
}).command('open', 'Open an app deployment in your browser', function (options) {
(0, _utils.checkDeps)(['platform'], function () {
return (0, _commands.open)(options);
});
}).alias('a', 'app').alias('d', 'domain').alias('e', 'env').alias('n', 'name').alias('i', 'image').alias('s', 'settings').alias('r', 'registry').help('h').alias('h', 'help').showHelpOnFail(false).argv;
// Default to 'reaction run' if no subcommand is specified
if (!args._.length && !args.h && !args.help) {
(0, _utils.checkDeps)(['app', 'meteor'], function () {
return (0, _commands.run)(_yargs2.default);
});
}
(0, _utils.track)();
;