electron-forge
Version:
A complete tool for building modern Electron applications
123 lines (94 loc) • 11.5 kB
JavaScript
;
var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
var _bluebird = require('bluebird');
require('colors');
var _commander = require('commander');
var _commander2 = _interopRequireDefault(_commander);
var _tabtab = require('tabtab');
var _tabtab2 = _interopRequireDefault(_tabtab);
require('./util/terminate');
var _oraHandler = require('./util/ora-handler');
var _oraHandler2 = _interopRequireDefault(_oraHandler);
var _checkSystem = require('./util/check-system');
var _checkSystem2 = _interopRequireDefault(_checkSystem);
var _config = require('./util/config');
var _config2 = _interopRequireDefault(_config);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var originalSC = _commander2.default.executeSubCommand.bind(_commander2.default);
_commander2.default.executeSubCommand = function (argv, args, unknown) {
var indexOfDoubleDash = process.argv.indexOf('--');
indexOfDoubleDash = indexOfDoubleDash < 0 ? process.argv.length + 1 : indexOfDoubleDash;
var passThroughArgs = args.filter(function (arg) {
return process.argv.indexOf(arg) > indexOfDoubleDash;
});
var normalArgs = args.filter(function (arg) {
return process.argv.indexOf(arg) <= indexOfDoubleDash;
});
var newArgs = args;
var newUnknown = unknown;
if (passThroughArgs.length > 0) {
newArgs = normalArgs.concat(unknown).concat('--').concat(passThroughArgs);
newUnknown = [];
}
return originalSC(argv, newArgs, newUnknown);
};
_commander2.default.version(require('../package.json').version).option('--verbose', 'Enables verbose mode').command('init', 'Initialize a new Electron application').command('import', 'Attempts to navigate you through the process of importing an existing project to "electron-forge"').command('lint', 'Lints the current Electron application').command('package', 'Package the current Electron application').command('make', 'Generate distributables for the current Electron application').command('start', 'Start the current Electron application').command('publish', 'Publish the current Electron application to GitHub').command('install', 'Install an Electron application from GitHub');
var tab = (0, _tabtab2.default)({
name: 'electron-forge'
});
tab.on('electron-forge', function (data, done) {
if (data.line.split(' ').length <= 2) {
done(null, _commander2.default.commands.filter(function (cmd) {
return cmd._name.startsWith(data.lastPartial);
}).map(function (cmd) {
return cmd._name + ':' + cmd._description;
}).sort());
} else {
done(null, []);
}
});
tab.start();
if (process.argv[2] !== 'completion') {
(0, _bluebird.coroutine)(_regenerator2.default.mark(function _callee2() {
var goodSystem;
return _regenerator2.default.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
goodSystem = void 0;
_context2.next = 3;
return (0, _oraHandler2.default)('Checking your system', (0, _bluebird.coroutine)(_regenerator2.default.mark(function _callee() {
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return (0, _checkSystem2.default)();
case 2:
goodSystem = _context.sent;
case 3:
case 'end':
return _context.stop();
}
}
}, _callee, undefined);
})));
case 3:
if (!goodSystem) {
console.error(('It looks like you are missing some dependencies you need to get Electron running.\n' + 'Make sure you have git installed and Node.js version 6.0.0+').red);
process.exit(1);
}
_commander2.default.parse(process.argv);
_config2.default.reset();
_config2.default.set('verbose', !!_commander2.default.verbose);
case 7:
case 'end':
return _context2.stop();
}
}
}, _callee2, undefined);
}))();
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVsZWN0cm9uLWZvcmdlLmpzIl0sIm5hbWVzIjpbIm9yaWdpbmFsU0MiLCJleGVjdXRlU3ViQ29tbWFuZCIsImJpbmQiLCJhcmd2IiwiYXJncyIsInVua25vd24iLCJpbmRleE9mRG91YmxlRGFzaCIsInByb2Nlc3MiLCJpbmRleE9mIiwibGVuZ3RoIiwicGFzc1Rocm91Z2hBcmdzIiwiZmlsdGVyIiwiYXJnIiwibm9ybWFsQXJncyIsIm5ld0FyZ3MiLCJuZXdVbmtub3duIiwiY29uY2F0IiwidmVyc2lvbiIsInJlcXVpcmUiLCJvcHRpb24iLCJjb21tYW5kIiwidGFiIiwibmFtZSIsIm9uIiwiZGF0YSIsImRvbmUiLCJsaW5lIiwic3BsaXQiLCJjb21tYW5kcyIsImNtZCIsIl9uYW1lIiwic3RhcnRzV2l0aCIsImxhc3RQYXJ0aWFsIiwibWFwIiwiX2Rlc2NyaXB0aW9uIiwic29ydCIsInN0YXJ0IiwiZ29vZFN5c3RlbSIsImNvbnNvbGUiLCJlcnJvciIsInJlZCIsImV4aXQiLCJwYXJzZSIsInJlc2V0Iiwic2V0IiwidmVyYm9zZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFDQTs7QUFDQTs7OztBQUNBOzs7O0FBRUE7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7QUFFQSxJQUFNQSxhQUFhLG9CQUFRQyxpQkFBUixDQUEwQkMsSUFBMUIscUJBQW5CO0FBQ0Esb0JBQVFELGlCQUFSLEdBQTRCLFVBQUNFLElBQUQsRUFBT0MsSUFBUCxFQUFhQyxPQUFiLEVBQXlCO0FBQ25ELE1BQUlDLG9CQUFvQkMsUUFBUUosSUFBUixDQUFhSyxPQUFiLENBQXFCLElBQXJCLENBQXhCO0FBQ0FGLHNCQUFvQkEsb0JBQW9CLENBQXBCLEdBQXdCQyxRQUFRSixJQUFSLENBQWFNLE1BQWIsR0FBc0IsQ0FBOUMsR0FBa0RILGlCQUF0RTs7QUFFQSxNQUFNSSxrQkFBa0JOLEtBQUtPLE1BQUwsQ0FBWTtBQUFBLFdBQU9KLFFBQVFKLElBQVIsQ0FBYUssT0FBYixDQUFxQkks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c0NvbnRlbnQiOlsiXG5pbXBvcnQgJ2NvbG9ycyc7XG5pbXBvcnQgcHJvZ3JhbSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHRhYnRhYiBmcm9tICd0YWJ0YWInO1xuXG5pbXBvcnQgJy4vdXRpbC90ZXJtaW5hdGUnO1xuaW1wb3J0IGFzeW5jT3JhIGZyb20gJy4vdXRpbC9vcmEtaGFuZGxlcic7XG5pbXBvcnQgY2hlY2tTeXN0ZW0gZnJvbSAnLi91dGlsL2NoZWNrLXN5c3RlbSc7XG5pbXBvcnQgY29uZmlnIGZyb20gJy4vdXRpbC9jb25maWcnO1xuXG5jb25zdCBvcmlnaW5hbFNDID0gcHJvZ3JhbS5leGVjdXRlU3ViQ29tbWFuZC5iaW5kKHByb2dyYW0pO1xucHJvZ3JhbS5leGVjdXRlU3ViQ29tbWFuZCA9IChhcmd2LCBhcmdzLCB1bmtub3duKSA9PiB7XG4gIGxldCBpbmRleE9mRG91YmxlRGFzaCA9IHByb2Nlc3MuYXJndi5pbmRleE9mKCctLScpO1xuICBpbmRleE9mRG91YmxlRGFzaCA9IGluZGV4T2ZEb3VibGVEYXNoIDwgMCA/IHByb2Nlc3MuYXJndi5sZW5ndGggKyAxIDogaW5kZXhPZkRvdWJsZURhc2g7XG5cbiAgY29uc3QgcGFzc1Rocm91Z2hBcmdzID0gYXJncy5maWx0ZXIoYXJnID0+IHByb2Nlc3MuYXJndi5pbmRleE9mKGFyZykgPiBpbmRleE9mRG91YmxlRGFzaCk7XG4gIGNvbnN0IG5vcm1hbEFyZ3MgPSBhcmdzLmZpbHRlcihhcmcgPT4gcHJvY2Vzcy5hcmd2LmluZGV4T2YoYXJnKSA8PSBpbmRleE9mRG91YmxlRGFzaCk7XG5cbiAgbGV0IG5ld0FyZ3MgPSBhcmdzO1xuICBsZXQgbmV3VW5rbm93biA9IHVua25vd247XG4gIGlmIChwYXNzVGhyb3VnaEFyZ3MubGVuZ3RoID4gMCkge1xuICAgIG5ld0FyZ3MgPSBub3JtYWxBcmdzLmNvbmNhdCh1bmtub3duKS5jb25jYXQoJy0tJykuY29uY2F0KHBhc3NUaHJvdWdoQXJncyk7XG4gICAgbmV3VW5rbm93biA9IFtdO1xuICB9XG4gIHJldHVybiBvcmlnaW5hbFNDKGFyZ3YsIG5ld0FyZ3MsIG5ld1Vua25vd24pO1xufTtcblxucHJvZ3JhbVxuICAudmVyc2lvbihyZXF1aXJlKCcuLi9wYWNrYWdlLmpzb24nKS52ZXJzaW9uKVxuICAub3B0aW9uKCctLXZlcmJvc2UnLCAnRW5hYmxlcyB2ZXJib3NlIG1vZGUnKVxuICAuY29tbWFuZCgnaW5pdCcsICdJbml0aWFsaXplIGEgbmV3IEVsZWN0cm9uIGFwcGxpY2F0aW9uJylcbiAgLmNvbW1hbmQoJ2ltcG9ydCcsICdBdHRlbXB0cyB0byBuYXZpZ2F0ZSB5b3UgdGhyb3VnaCB0aGUgcHJvY2VzcyBvZiBpbXBvcnRpbmcgYW4gZXhpc3RpbmcgcHJvamVjdCB0byBcImVsZWN0cm9uLWZvcmdlXCInKVxuICAuY29tbWFuZCgnbGludCcsICdMaW50cyB0aGUgY3VycmVudCBFbGVjdHJvbiBhcHBsaWNhdGlvbicpXG4gIC5jb21tYW5kKCdwYWNrYWdlJywgJ1BhY2thZ2UgdGhlIGN1cnJlbnQgRWxlY3Ryb24gYXBwbGljYXRpb24nKVxuICAuY29tbWFuZCgnbWFrZScsICdHZW5lcmF0ZSBkaXN0cmlidXRhYmxlcyBmb3IgdGhlIGN1cnJlbnQgRWxlY3Ryb24gYXBwbGljYXRpb24nKVxuICAuY29tbWFuZCgnc3RhcnQnLCAnU3RhcnQgdGhlIGN1cnJlbnQgRWxlY3Ryb24gYXBwbGljYXRpb24nKVxuICAuY29tbWFuZCgncHVibGlzaCcsICdQdWJsaXNoIHRoZSBjdXJyZW50IEVsZWN0cm9uIGFwcGxpY2F0aW9uIHRvIEdpdEh1YicpXG4gIC5jb21tYW5kKCdpbnN0YWxsJywgJ0luc3RhbGwgYW4gRWxlY3Ryb24gYXBwbGljYXRpb24gZnJvbSBHaXRIdWInKTtcblxuY29uc3QgdGFiID0gdGFidGFiKHtcbiAgbmFtZTogJ2VsZWN0cm9uLWZvcmdlJyxcbn0pO1xudGFiLm9uKCdlbGVjdHJvbi1mb3JnZScsIChkYXRhLCBkb25lKSA9PiB7XG4gIGlmIChkYXRhLmxpbmUuc3BsaXQoJyAnKS5sZW5ndGggPD0gMikge1xuICAgIGRvbmUoXG4gICAgICBudWxsLFxuICAgICAgcHJvZ3JhbS5jb21tYW5kc1xuICAgICAgICAuZmlsdGVyKGNtZCA9PiBjbWQuX25hbWUuc3RhcnRzV2l0aChkYXRhLmxhc3RQYXJ0aWFsKSlcbiAgICAgICAgLm1hcChjbWQgPT4gYCR7Y21kLl9uYW1lfToke2NtZC5fZGVzY3JpcHRpb259YCkuc29ydCgpXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBkb25lKG51bGwsIFtdKTtcbiAgfVxufSk7XG50YWIuc3RhcnQoKTtcblxuaWYgKHByb2Nlc3MuYXJndlsyXSAhPT0gJ2NvbXBsZXRpb24nKSB7XG4gIChhc3luYyAoKSA9PiB7XG4gICAgbGV0IGdvb2RTeXN0ZW07XG4gICAgYXdhaXQgYXN5bmNPcmEoJ0NoZWNraW5nIHlvdXIgc3lzdGVtJywgYXN5bmMgKCkgPT4ge1xuICAgICAgZ29vZFN5c3RlbSA9IGF3YWl0IGNoZWNrU3lzdGVtKCk7XG4gICAgfSk7XG5cbiAgICBpZiAoIWdvb2RTeXN0ZW0pIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoKCdJdCBsb29rcyBsaWtlIHlvdSBhcmUgbWlzc2luZyBzb21lIGRlcGVuZGVuY2llcyB5b3UgbmVlZCB0byBnZXQgRWxlY3Ryb24gcnVubmluZy5cXG4nICtcbiAgICAgICAgICAgICAgICAgICAgJ01ha2Ugc3VyZSB5b3UgaGF2ZSBnaXQgaW5zdGFsbGVkIGFuZCBOb2RlLmpzIHZlcnNpb24gNi4wLjArJykucmVkKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG5cbiAgICBwcm9ncmFtLnBhcnNlKHByb2Nlc3MuYXJndik7XG5cbiAgICBjb25maWcucmVzZXQoKTtcbiAgICBjb25maWcuc2V0KCd2ZXJib3NlJywgISFwcm9ncmFtLnZlcmJvc2UpO1xuICB9KSgpO1xufVxuIl19