r8s-cli
Version:
A command line tool for Reaction Commerce to be used with kubernetes
88 lines (64 loc) • 2.83 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.plugins = plugins;
var _fsExtra = require('fs-extra');
var _fsExtra2 = _interopRequireDefault(_fsExtra);
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
var _child_process = require('child_process');
var _utils = require('../utils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var helpMessage = '\nUsage:\n\n reaction plugins [command]\n\n Commands:\n create Create a new plugin in /imports/plugins/custom\n load Set up the imports of your internal Reaction plugins\n';
function plugins(yargs) {
_utils.Log.args(yargs.argv);
var commands = yargs.argv._;
if (!commands[1]) {
_utils.Log.error('\nOops! A subcommand is required.\n');
_utils.Log.error('To load plugins, try running:\n');
_utils.Log.warn(_utils.Log.yellow(' reaction plugins load\n'));
process.exit(1);
}
if (commands[1] === 'load') {
_utils.Log.info('\nSetting up plugin imports...');
(0, _utils.loadPlugins)();
_utils.Log.info('\nSetting up style imports...\n');
(0, _utils.loadStyles)();
return _utils.Log.success('Done!\n');
}
if (commands[1] === 'create') {
var name = yargs.argv.name;
if (!name) {
_utils.Log.error('\nA name argument is required. Use the --name flag to choose your plugin name.\n');
process.exit(1);
}
var pluginPath = './imports/plugins/custom/' + name;
if ((0, _utils.exists)(pluginPath)) {
_utils.Log.error('\nError: A plugin already exists at ' + _utils.Log.yellow('/imports/plugins/custom/' + name) + ' \n\nExiting.');
process.exit(1);
}
var clientImport = _path2.default.resolve(pluginPath + '/client/index.js');
var serverImport = _path2.default.resolve(pluginPath + '/server/index.js');
var registryImport = _path2.default.resolve(pluginPath + '/register.js');
var packageDotJson = _path2.default.resolve(pluginPath + '/package.json');
try {
_fsExtra2.default.ensureFileSync(clientImport, '');
_fsExtra2.default.ensureFileSync(serverImport, '');
_fsExtra2.default.ensureFileSync(registryImport, '');
} catch (e) {
_utils.Log.error('Failed to create plugin at ' + pluginPath);
process.exit(1);
}
try {
(0, _child_process.execSync)('cd ' + pluginPath + ' && npm init -y', { stdio: 'ignore' });
} catch (err) {
_utils.Log.error('Failed to create a package.json at ' + packageDotJson);
process.exit(1);
}
_utils.Log.success('\nSuccess!\n');
return _utils.Log.info('New plugin created at: ' + _utils.Log.magenta('/imports/plugins/custom/' + name) + '\n');
}
_utils.Log.error('\nInvalid subcommand');
_utils.Log.default(helpMessage);
}