UNPKG

10.3 kBJavaScriptView Raw
1#!/usr/bin/env node
2'use strict';
3
4var _bluebird = require('bluebird');
5
6require('colors');
7
8var _commander = require('commander');
9
10var _commander2 = _interopRequireDefault(_commander);
11
12var _tabtab = require('tabtab');
13
14var _tabtab2 = _interopRequireDefault(_tabtab);
15
16require('./util/terminate');
17
18var _oraHandler = require('./util/ora-handler');
19
20var _oraHandler2 = _interopRequireDefault(_oraHandler);
21
22var _checkSystem = require('./util/check-system');
23
24var _checkSystem2 = _interopRequireDefault(_checkSystem);
25
26var _config = require('./util/config');
27
28var _config2 = _interopRequireDefault(_config);
29
30function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
32const originalSC = _commander2.default.executeSubCommand.bind(_commander2.default);
33_commander2.default.executeSubCommand = (argv, args, unknown) => {
34 let indexOfDoubleDash = process.argv.indexOf('--');
35 indexOfDoubleDash = indexOfDoubleDash < 0 ? process.argv.length + 1 : indexOfDoubleDash;
36
37 const passThroughArgs = args.filter(arg => process.argv.indexOf(arg) > indexOfDoubleDash);
38 const normalArgs = args.filter(arg => process.argv.indexOf(arg) <= indexOfDoubleDash);
39
40 let newArgs = args;
41 let newUnknown = unknown;
42 if (passThroughArgs.length > 0) {
43 newArgs = normalArgs.concat(unknown).concat('--').concat(passThroughArgs);
44 newUnknown = [];
45 }
46 return originalSC(argv, newArgs, newUnknown);
47};
48
49_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');
50
51const tab = (0, _tabtab2.default)({
52 name: 'electron-forge'
53});
54tab.on('electron-forge', (data, done) => {
55 if (data.line.split(' ').length <= 2) {
56 done(null, _commander2.default.commands.filter(cmd => cmd._name.startsWith(data.lastPartial)).map(cmd => `${cmd._name}:${cmd._description}`).sort());
57 } else {
58 done(null, []);
59 }
60});
61tab.start();
62
63if (process.argv[2] !== 'completion') {
64 (0, _bluebird.coroutine)(function* () {
65 let goodSystem;
66 yield (0, _oraHandler2.default)('Checking your system', (() => {
67 var _ref2 = (0, _bluebird.coroutine)(function* (ora) {
68 goodSystem = yield (0, _checkSystem2.default)(ora);
69 });
70
71 return function (_x) {
72 return _ref2.apply(this, arguments);
73 };
74 })());
75
76 if (!goodSystem) {
77 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);
78 process.exit(1);
79 }
80
81 _commander2.default.parse(process.argv);
82
83 _config2.default.reset();
84 _config2.default.set('verbose', !!_commander2.default.verbose);
85 })();
86}
87//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVsZWN0cm9uLWZvcmdlLmpzIl0sIm5hbWVzIjpbIm9yaWdpbmFsU0MiLCJwcm9ncmFtIiwiZXhlY3V0ZVN1YkNvbW1hbmQiLCJiaW5kIiwiYXJndiIsImFyZ3MiLCJ1bmtub3duIiwiaW5kZXhPZkRvdWJsZURhc2giLCJwcm9jZXNzIiwiaW5kZXhPZiIsImxlbmd0aCIsInBhc3NUaHJvdWdoQXJncyIsImZpbHRlciIsImFyZyIsIm5vcm1hbEFyZ3MiLCJuZXdBcmdzIiwibmV3VW5rbm93biIsImNvbmNhdCIsInZlcnNpb24iLCJyZXF1aXJlIiwib3B0aW9uIiwiY29tbWFuZCIsInRhYiIsIm5hbWUiLCJvbiIsImRhdGEiLCJkb25lIiwibGluZSIsInNwbGl0IiwiY29tbWFuZHMiLCJjbWQiLCJfbmFtZSIsInN0YXJ0c1dpdGgiLCJsYXN0UGFydGlhbCIsIm1hcCIsIl9kZXNjcmlwdGlvbiIsInNvcnQiLCJzdGFydCIsImdvb2RTeXN0ZW0iLCJvcmEiLCJjb25zb2xlIiwiZXJyb3IiLCJyZWQiLCJleGl0IiwicGFyc2UiLCJjb25maWciLCJyZXNldCIsInNldCIsInZlcmJvc2UiXSwibWFwcGluZ3MiOiI7Ozs7QUFDQTs7QUFDQTs7OztBQUNBOzs7O0FBRUE7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7QUFFQSxNQUFNQSxhQUFhQyxvQkFBUUMsaUJBQVIsQ0FBMEJDLElBQTFCLENBQStCRixtQkFBL0IsQ0FBbkI7QUFDQUEsb0JBQVFDLGlCQUFSLEdBQTRCLENBQUNFLElBQUQsRUFBT0MsSUFBUCxFQUFhQyxPQUFiLEtBQXlCO0FBQ25ELE1BQUlDLG9CQUFvQkMsUUFBUUosSUFBUixDQUFhSyxPQUFiLENBQXFCLElBQXJCLENBQXhCO0FBQ0FGLHNCQUFvQkEsb0JBQW9CLENBQXBCLEdBQXdCQyxRQUFRSixJQUFSLENBQWFNLE1BQWIsR0FBc0IsQ0FBOUMsR0FBa0RILGlCQUF0RTs7QUFFQSxRQUFNSSxrQkFBa0JOLEtBQUtPLE1BQUwsQ0FBWUMsT0FBT0wsUUFBUUosSUFBUixDQUFhSyxPQUFiLENBQXFCSSxHQUFyQixJQUE0Qk4saUJBQS9DLENBQXhCO0FBQ0EsUUFBTU8sYUFBYVQsS0FBS08sTUFBTCxDQUFZQyxPQUFPTCxRQUFRSixJQUFSLENBQWFLLE9BQWIsQ0FBcUJJLEdBQXJCLEtBQTZCTixpQkFBaEQsQ0FBbkI7O0FBRUEsTUFBSVEsVUFBVVYsSUFBZDtBQUNBLE1BQUlXLGFBQWFWLE9BQWpCO0FBQ0EsTUFBSUssZ0JBQWdCRCxNQUFoQixHQUF5QixDQUE3QixFQUFnQztBQUM5QkssY0FBVUQsV0FBV0csTUFBWCxDQUFrQlgsT0FBbEIsRUFBMkJXLE1BQTNCLENBQWtDLElBQWxDLEVBQXdDQSxNQUF4QyxDQUErQ04sZUFBL0MsQ0FBVjtBQUNBSyxpQkFBYSxFQUFiO0FBQ0Q7QUFDRCxTQUFPaEIsV0FBV0ksSUFBWCxFQUFpQlcsT0FBakIsRUFBMEJDLFVBQTFCLENBQVA7QUFDRCxDQWREOztBQWdCQWYsb0JBQ0dpQixPQURILENBQ1dDLFFBQVEsaUJBQVIsRUFBMkJELE9BRHRDLEVBRUdFLE1BRkgsQ0FFVSxXQUZWLEVBRXVCLHNCQUZ2QixFQUdHQyxPQUhILENBR1csTUFIWCxFQUdtQix1Q0FIbkIsRUFJR0EsT0FKSCxDQUlXLFFBSlgsRUFJcUIsbUdBSnJCLEVBS0dBLE9BTEgsQ0FLVyxNQUxYLEVBS21CLHdDQUxuQixFQU1HQSxPQU5ILENBTVcsU0FOWCxFQU1zQiwwQ0FOdEIsRUFPR0EsT0FQSCxDQU9XLE1BUFgsRUFPbUIsOERBUG5CLEVBUUdBLE9BUkgsQ0FRVyxPQVJYLEVBUW9CLHdDQVJwQixFQVNHQSxPQVRILENBU1csU0FUWCxFQVNzQixvREFUdEIsRUFVR0EsT0FWSCxDQVVXLFNBVlgsRUFVc0IsNkNBVnRCOztBQVlBLE1BQU1DLE1BQU0sc0JBQU87QUFDakJDLFFBQU07QUFEVyxDQUFQLENBQVo7QUFHQUQsSUFBSUUsRUFBSixDQUFPLGdCQUFQLEVBQXlCLENBQUNDLElBQUQsRUFBT0MsSUFBUCxLQUFnQjtBQUN2QyxNQUFJRCxLQUFLRSxJQUFMLENBQVVDLEtBQVYsQ0FBZ0IsR0FBaEIsRUFBcUJsQixNQUFyQixJQUErQixDQUFuQyxFQUFzQztBQUNwQ2dCLFNBQ0UsSUFERixFQUVFekIsb0JBQVE0QixRQUFSLENBQ0dqQixNQURILENBQ1VrQixPQUFPQSxJQUFJQyxLQUFKLENBQVVDLFVBQVYsQ0FBcUJQLEtBQUtRLFdBQTFCLENBRGpCLEVBRUdDLEdBRkgsQ0FFT0osT0FBUSxHQUFFQSxJQUFJQyxLQUFNLElBQUdELElBQUlLLFlBQWEsRUFGL0MsRUFFa0RDLElBRmxELEVBRkY7QUFNRCxHQVBELE1BT087QUFDTFYsU0FBSyxJQUFMLEVBQVcsRUFBWDtBQUNEO0FBQ0YsQ0FYRDtBQVlBSixJQUFJZSxLQUFKOztBQUVBLElBQUk3QixRQUFRSixJQUFSLENBQWEsQ0FBYixNQUFvQixZQUF4QixFQUFzQztBQUNwQywyQkFBQyxhQUFZO0FBQ1gsUUFBSWtDLFVBQUo7QUFDQSxVQUFNLDBCQUFTLHNCQUFUO0FBQUEsMkNBQWlDLFdBQU9DLEdBQVAsRUFBZTtBQUNwREQscUJBQWEsTUFBTSwyQkFBWUMsR0FBWixDQUFuQjtBQUNELE9BRks7O0FBQUE7QUFBQTtBQUFBO0FBQUEsU0FBTjs7QUFJQSxRQUFJLENBQUNELFVBQUwsRUFBaUI7QUFDZkUsY0FBUUMsS0FBUixDQUFjLENBQUMsd0ZBQ0QsNkRBREEsRUFDK0RDLEdBRDdFO0FBRUFsQyxjQUFRbUMsSUFBUixDQUFhLENBQWI7QUFDRDs7QUFFRDFDLHdCQUFRMkMsS0FBUixDQUFjcEMsUUFBUUosSUFBdEI7O0FBRUF5QyxxQkFBT0MsS0FBUDtBQUNBRCxxQkFBT0UsR0FBUCxDQUFXLFNBQVgsRUFBc0IsQ0FBQyxDQUFDOUMsb0JBQVErQyxPQUFoQztBQUNELEdBaEJEO0FBaUJEIiwiZmlsZSI6ImVsZWN0cm9uLWZvcmdlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgJ2NvbG9ycyc7XG5pbXBvcnQgcHJvZ3JhbSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHRhYnRhYiBmcm9tICd0YWJ0YWInO1xuXG5pbXBvcnQgJy4vdXRpbC90ZXJtaW5hdGUnO1xuaW1wb3J0IGFzeW5jT3JhIGZyb20gJy4vdXRpbC9vcmEtaGFuZGxlcic7XG5pbXBvcnQgY2hlY2tTeXN0ZW0gZnJvbSAnLi91dGlsL2NoZWNrLXN5c3RlbSc7XG5pbXBvcnQgY29uZmlnIGZyb20gJy4vdXRpbC9jb25maWcnO1xuXG5jb25zdCBvcmlnaW5hbFNDID0gcHJvZ3JhbS5leGVjdXRlU3ViQ29tbWFuZC5iaW5kKHByb2dyYW0pO1xucHJvZ3JhbS5leGVjdXRlU3ViQ29tbWFuZCA9IChhcmd2LCBhcmdzLCB1bmtub3duKSA9PiB7XG4gIGxldCBpbmRleE9mRG91YmxlRGFzaCA9IHByb2Nlc3MuYXJndi5pbmRleE9mKCctLScpO1xuICBpbmRleE9mRG91YmxlRGFzaCA9IGluZGV4T2ZEb3VibGVEYXNoIDwgMCA/IHByb2Nlc3MuYXJndi5sZW5ndGggKyAxIDogaW5kZXhPZkRvdWJsZURhc2g7XG5cbiAgY29uc3QgcGFzc1Rocm91Z2hBcmdzID0gYXJncy5maWx0ZXIoYXJnID0+IHByb2Nlc3MuYXJndi5pbmRleE9mKGFyZykgPiBpbmRleE9mRG91YmxlRGFzaCk7XG4gIGNvbnN0IG5vcm1hbEFyZ3MgPSBhcmdzLmZpbHRlcihhcmcgPT4gcHJvY2Vzcy5hcmd2LmluZGV4T2YoYXJnKSA8PSBpbmRleE9mRG91YmxlRGFzaCk7XG5cbiAgbGV0IG5ld0FyZ3MgPSBhcmdzO1xuICBsZXQgbmV3VW5rbm93biA9IHVua25vd247XG4gIGlmIChwYXNzVGhyb3VnaEFyZ3MubGVuZ3RoID4gMCkge1xuICAgIG5ld0FyZ3MgPSBub3JtYWxBcmdzLmNvbmNhdCh1bmtub3duKS5jb25jYXQoJy0tJykuY29uY2F0KHBhc3NUaHJvdWdoQXJncyk7XG4gICAgbmV3VW5rbm93biA9IFtdO1xuICB9XG4gIHJldHVybiBvcmlnaW5hbFNDKGFyZ3YsIG5ld0FyZ3MsIG5ld1Vua25vd24pO1xufTtcblxucHJvZ3JhbVxuICAudmVyc2lvbihyZXF1aXJlKCcuLi9wYWNrYWdlLmpzb24nKS52ZXJzaW9uKVxuICAub3B0aW9uKCctLXZlcmJvc2UnLCAnRW5hYmxlcyB2ZXJib3NlIG1vZGUnKVxuICAuY29tbWFuZCgnaW5pdCcsICdJbml0aWFsaXplIGEgbmV3IEVsZWN0cm9uIGFwcGxpY2F0aW9uJylcbiAgLmNvbW1hbmQoJ2ltcG9ydCcsICdBdHRlbXB0cyB0byBuYXZpZ2F0ZSB5b3UgdGhyb3VnaCB0aGUgcHJvY2VzcyBvZiBpbXBvcnRpbmcgYW4gZXhpc3RpbmcgcHJvamVjdCB0byBcImVsZWN0cm9uLWZvcmdlXCInKVxuICAuY29tbWFuZCgnbGludCcsICdMaW50cyB0aGUgY3VycmVudCBFbGVjdHJvbiBhcHBsaWNhdGlvbicpXG4gIC5jb21tYW5kKCdwYWNrYWdlJywgJ1BhY2thZ2UgdGhlIGN1cnJlbnQgRWxlY3Ryb24gYXBwbGljYXRpb24nKVxuICAuY29tbWFuZCgnbWFrZScsICdHZW5lcmF0ZSBkaXN0cmlidXRhYmxlcyBmb3IgdGhlIGN1cnJlbnQgRWxlY3Ryb24gYXBwbGljYXRpb24nKVxuICAuY29tbWFuZCgnc3RhcnQnLCAnU3RhcnQgdGhlIGN1cnJlbnQgRWxlY3Ryb24gYXBwbGljYXRpb24nKVxuICAuY29tbWFuZCgncHVibGlzaCcsICdQdWJsaXNoIHRoZSBjdXJyZW50IEVsZWN0cm9uIGFwcGxpY2F0aW9uIHRvIEdpdEh1YicpXG4gIC5jb21tYW5kKCdpbnN0YWxsJywgJ0luc3RhbGwgYW4gRWxlY3Ryb24gYXBwbGljYXRpb24gZnJvbSBHaXRIdWInKTtcblxuY29uc3QgdGFiID0gdGFidGFiKHtcbiAgbmFtZTogJ2VsZWN0cm9uLWZvcmdlJyxcbn0pO1xudGFiLm9uKCdlbGVjdHJvbi1mb3JnZScsIChkYXRhLCBkb25lKSA9PiB7XG4gIGlmIChkYXRhLmxpbmUuc3BsaXQoJyAnKS5sZW5ndGggPD0gMikge1xuICAgIGRvbmUoXG4gICAgICBudWxsLFxuICAgICAgcHJvZ3JhbS5jb21tYW5kc1xuICAgICAgICAuZmlsdGVyKGNtZCA9PiBjbWQuX25hbWUuc3RhcnRzV2l0aChkYXRhLmxhc3RQYXJ0aWFsKSlcbiAgICAgICAgLm1hcChjbWQgPT4gYCR7Y21kLl9uYW1lfToke2NtZC5fZGVzY3JpcHRpb259YCkuc29ydCgpXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBkb25lKG51bGwsIFtdKTtcbiAgfVxufSk7XG50YWIuc3RhcnQoKTtcblxuaWYgKHByb2Nlc3MuYXJndlsyXSAhPT0gJ2NvbXBsZXRpb24nKSB7XG4gIChhc3luYyAoKSA9PiB7XG4gICAgbGV0IGdvb2RTeXN0ZW07XG4gICAgYXdhaXQgYXN5bmNPcmEoJ0NoZWNraW5nIHlvdXIgc3lzdGVtJywgYXN5bmMgKG9yYSkgPT4ge1xuICAgICAgZ29vZFN5c3RlbSA9IGF3YWl0IGNoZWNrU3lzdGVtKG9yYSk7XG4gICAgfSk7XG5cbiAgICBpZiAoIWdvb2RTeXN0ZW0pIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoKCdJdCBsb29rcyBsaWtlIHlvdSBhcmUgbWlzc2luZyBzb21lIGRlcGVuZGVuY2llcyB5b3UgbmVlZCB0byBnZXQgRWxlY3Ryb24gcnVubmluZy5cXG4nICtcbiAgICAgICAgICAgICAgICAgICAgJ01ha2Ugc3VyZSB5b3UgaGF2ZSBnaXQgaW5zdGFsbGVkIGFuZCBOb2RlLmpzIHZlcnNpb24gNi4wLjArJykucmVkKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG5cbiAgICBwcm9ncmFtLnBhcnNlKHByb2Nlc3MuYXJndik7XG5cbiAgICBjb25maWcucmVzZXQoKTtcbiAgICBjb25maWcuc2V0KCd2ZXJib3NlJywgISFwcm9ncmFtLnZlcmJvc2UpO1xuICB9KSgpO1xufVxuIl19
\No newline at end of file