UNPKG

9.41 kBJavaScriptView Raw
1'use strict';
2
3var _promise = require('babel-runtime/core-js/promise');
4
5var _promise2 = _interopRequireDefault(_promise);
6
7var _bluebird = require('bluebird');
8
9var _fsExtra = require('fs-extra');
10
11var _fsExtra2 = _interopRequireDefault(_fsExtra);
12
13var _path = require('path');
14
15var _path2 = _interopRequireDefault(_path);
16
17var _commander = require('commander');
18
19var _commander2 = _interopRequireDefault(_commander);
20
21require('./util/terminate');
22
23var _api = require('./api');
24
25function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26
27(0, _bluebird.coroutine)(function* () {
28 let commandArgs = process.argv;
29 let appArgs;
30
31 const doubleDashIndex = process.argv.indexOf('--');
32 if (doubleDashIndex !== -1) {
33 commandArgs = process.argv.slice(0, doubleDashIndex);
34 appArgs = process.argv.slice(doubleDashIndex + 1);
35 }
36
37 let dir = process.cwd();
38 _commander2.default.version(require('../package.json').version).arguments('[cwd]').option('-p, --app-path <path>', "Override the path to the Electron app to launch (defaults to '.')").option('-l, --enable-logging', 'Enable advanced logging. This will log internal Electron things').option('-n, --run-as-node', 'Run the Electron app as a Node.JS script').option('--vscode', 'Used to enable arg transformation for debugging Electron through VSCode. Do not use yourself.').option('-i, --inspect-electron', 'Triggers inspect mode on Electron to allow debugging the main process. Electron >1.7 only').action(function (cwd) {
39 if (!cwd) return;
40 if (_path2.default.isAbsolute(cwd) && _fsExtra2.default.existsSync(cwd)) {
41 dir = cwd;
42 } else if (_fsExtra2.default.existsSync(_path2.default.resolve(dir, cwd))) {
43 dir = _path2.default.resolve(dir, cwd);
44 }
45 }).parse(commandArgs);
46
47 _commander2.default.on('--help', function () {
48 console.log(" Any arguments found after '--' will be passed to the Electron app, e.g.");
49 console.log('');
50 console.log(' $ electron-forge /path/to/project -l -- -d -f foo.txt');
51 console.log('');
52 console.log(" will pass the arguments '-d -f foo.txt' to the Electron app");
53 });
54
55 const opts = {
56 dir,
57 interactive: true,
58 enableLogging: !!_commander2.default.enableLogging,
59 runAsNode: !!_commander2.default.runAsNode,
60 inspect: !!_commander2.default.inspectElectron
61 };
62
63 if (_commander2.default.vscode && appArgs) {
64 // Args are in the format ~arg~ so we need to strip the "~"
65 appArgs = appArgs.map(function (arg) {
66 return arg.substr(1, arg.length - 2);
67 }).filter(function (arg) {
68 return arg.length > 0;
69 });
70 }
71
72 if (_commander2.default.appPath) opts.appPath = _commander2.default.appPath;
73 if (appArgs) opts.args = appArgs;
74
75 const spawned = yield (0, _api.start)(opts);
76
77 yield new _promise2.default(function (resolve) {
78 spawned.on('exit', function (code) {
79 if (code !== 0) {
80 process.exit(code);
81 }
82 resolve();
83 });
84 });
85})();
86//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVsZWN0cm9uLWZvcmdlLXN0YXJ0LmpzIl0sIm5hbWVzIjpbImNvbW1hbmRBcmdzIiwicHJvY2VzcyIsImFyZ3YiLCJhcHBBcmdzIiwiZG91YmxlRGFzaEluZGV4IiwiaW5kZXhPZiIsInNsaWNlIiwiZGlyIiwiY3dkIiwidmVyc2lvbiIsInJlcXVpcmUiLCJhcmd1bWVudHMiLCJvcHRpb24iLCJhY3Rpb24iLCJpc0Fic29sdXRlIiwiZXhpc3RzU3luYyIsInJlc29sdmUiLCJwYXJzZSIsIm9uIiwiY29uc29sZSIsImxvZyIsIm9wdHMiLCJpbnRlcmFjdGl2ZSIsImVuYWJsZUxvZ2dpbmciLCJydW5Bc05vZGUiLCJpbnNwZWN0IiwiaW5zcGVjdEVsZWN0cm9uIiwidnNjb2RlIiwibWFwIiwiYXJnIiwic3Vic3RyIiwibGVuZ3RoIiwiZmlsdGVyIiwiYXBwUGF0aCIsImFyZ3MiLCJzcGF3bmVkIiwiY29kZSIsImV4aXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBRUE7O0FBQ0E7Ozs7QUFFQSx5QkFBQyxhQUFZO0FBQ1gsTUFBSUEsY0FBY0MsUUFBUUMsSUFBMUI7QUFDQSxNQUFJQyxPQUFKOztBQUVBLFFBQU1DLGtCQUFrQkgsUUFBUUMsSUFBUixDQUFhRyxPQUFiLENBQXFCLElBQXJCLENBQXhCO0FBQ0EsTUFBSUQsb0JBQW9CLENBQUMsQ0FBekIsRUFBNEI7QUFDMUJKLGtCQUFjQyxRQUFRQyxJQUFSLENBQWFJLEtBQWIsQ0FBbUIsQ0FBbkIsRUFBc0JGLGVBQXRCLENBQWQ7QUFDQUQsY0FBVUYsUUFBUUMsSUFBUixDQUFhSSxLQUFiLENBQW1CRixrQkFBa0IsQ0FBckMsQ0FBVjtBQUNEOztBQUVELE1BQUlHLE1BQU1OLFFBQVFPLEdBQVIsRUFBVjtBQUNBLHNCQUNHQyxPQURILENBQ1dDLFFBQVEsaUJBQVIsRUFBMkJELE9BRHRDLEVBRUdFLFNBRkgsQ0FFYSxPQUZiLEVBR0dDLE1BSEgsQ0FHVSx1QkFIVixFQUdtQyxtRUFIbkMsRUFJR0EsTUFKSCxDQUlVLHNCQUpWLEVBSWtDLGtFQUpsQyxFQUtHQSxNQUxILENBS1UsbUJBTFYsRUFLK0IsMENBTC9CLEVBTUdBLE1BTkgsQ0FNVSxVQU5WLEVBTXNCLGdHQU50QixFQU9HQSxNQVBILENBT1Usd0JBUFYsRUFPb0MsNEZBUHBDLEVBUUdDLE1BUkgsQ0FRVSxVQUFDTCxHQUFELEVBQVM7QUFDZixRQUFJLENBQUNBLEdBQUwsRUFBVTtBQUNWLFFBQUksZUFBS00sVUFBTCxDQUFnQk4sR0FBaEIsS0FBd0Isa0JBQUdPLFVBQUgsQ0FBY1AsR0FBZCxDQUE1QixFQUFnRDtBQUM5Q0QsWUFBTUMsR0FBTjtBQUNELEtBRkQsTUFFTyxJQUFJLGtCQUFHTyxVQUFILENBQWMsZUFBS0MsT0FBTCxDQUFhVCxHQUFiLEVBQWtCQyxHQUFsQixDQUFkLENBQUosRUFBMkM7QUFDaERELFlBQU0sZUFBS1MsT0FBTCxDQUFhVCxHQUFiLEVBQWtCQyxHQUFsQixDQUFOO0FBQ0Q7QUFDRixHQWZILEVBZ0JHUyxLQWhCSCxDQWdCU2pCLFdBaEJUOztBQWtCQSxzQkFBUWtCLEVBQVIsQ0FBVyxRQUFYLEVBQXFCLFlBQU07QUFDekJDLFlBQVFDLEdBQVIsQ0FBWSwyRUFBWjtBQUNBRCxZQUFRQyxHQUFSLENBQVksRUFBWjtBQUNBRCxZQUFRQyxHQUFSLENBQVksMkRBQVo7QUFDQUQsWUFBUUMsR0FBUixDQUFZLEVBQVo7QUFDQUQsWUFBUUMsR0FBUixDQUFZLCtEQUFaO0FBQ0QsR0FORDs7QUFRQSxRQUFNQyxPQUFPO0FBQ1hkLE9BRFc7QUFFWGUsaUJBQWEsSUFGRjtBQUdYQyxtQkFBZSxDQUFDLENBQUMsb0JBQVFBLGFBSGQ7QUFJWEMsZUFBVyxDQUFDLENBQUMsb0JBQVFBLFNBSlY7QUFLWEMsYUFBUyxDQUFDLENBQUMsb0JBQVFDO0FBTFIsR0FBYjs7QUFRQSxNQUFJLG9CQUFRQyxNQUFSLElBQWtCeEIsT0FBdEIsRUFBK0I7QUFDN0I7QUFDQUEsY0FBVUEsUUFDUHlCLEdBRE8sQ0FDSDtBQUFBLGFBQU9DLElBQUlDLE1BQUosQ0FBVyxDQUFYLEVBQWNELElBQUlFLE1BQUosR0FBYSxDQUEzQixDQUFQO0FBQUEsS0FERyxFQUVQQyxNQUZPLENBRUE7QUFBQSxhQUFPSCxJQUFJRSxNQUFKLEdBQWEsQ0FBcEI7QUFBQSxLQUZBLENBQVY7QUFHRDs7QUFFRCxNQUFJLG9CQUFRRSxPQUFaLEVBQXFCWixLQUFLWSxPQUFMLEdBQWUsb0JBQVFBLE9BQXZCO0FBQ3JCLE1BQUk5QixPQUFKLEVBQWFrQixLQUFLYSxJQUFMLEdBQVkvQixPQUFaOztBQUViLFFBQU1nQyxVQUFVLE1BQU0sZ0JBQU1kLElBQU4sQ0FBdEI7O0FBRUEsUUFBTSxzQkFBWSxVQUFDTCxPQUFELEVBQWE7QUFDN0JtQixZQUFRakIsRUFBUixDQUFXLE1BQVgsRUFBbUIsVUFBQ2tCLElBQUQsRUFBVTtBQUMzQixVQUFJQSxTQUFTLENBQWIsRUFBZ0I7QUFDZG5DLGdCQUFRb0MsSUFBUixDQUFhRCxJQUFiO0FBQ0Q7QUFDRHBCO0FBQ0QsS0FMRDtBQU1ELEdBUEssQ0FBTjtBQVFELENBakVEIiwiZmlsZSI6ImVsZWN0cm9uLWZvcmdlLXN0YXJ0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHByb2dyYW0gZnJvbSAnY29tbWFuZGVyJztcblxuaW1wb3J0ICcuL3V0aWwvdGVybWluYXRlJztcbmltcG9ydCB7IHN0YXJ0IH0gZnJvbSAnLi9hcGknO1xuXG4oYXN5bmMgKCkgPT4ge1xuICBsZXQgY29tbWFuZEFyZ3MgPSBwcm9jZXNzLmFyZ3Y7XG4gIGxldCBhcHBBcmdzO1xuXG4gIGNvbnN0IGRvdWJsZURhc2hJbmRleCA9IHByb2Nlc3MuYXJndi5pbmRleE9mKCctLScpO1xuICBpZiAoZG91YmxlRGFzaEluZGV4ICE9PSAtMSkge1xuICAgIGNvbW1hbmRBcmdzID0gcHJvY2Vzcy5hcmd2LnNsaWNlKDAsIGRvdWJsZURhc2hJbmRleCk7XG4gICAgYXBwQXJncyA9IHByb2Nlc3MuYXJndi5zbGljZShkb3VibGVEYXNoSW5kZXggKyAxKTtcbiAgfVxuXG4gIGxldCBkaXIgPSBwcm9jZXNzLmN3ZCgpO1xuICBwcm9ncmFtXG4gICAgLnZlcnNpb24ocmVxdWlyZSgnLi4vcGFja2FnZS5qc29uJykudmVyc2lvbilcbiAgICAuYXJndW1lbnRzKCdbY3dkXScpXG4gICAgLm9wdGlvbignLXAsIC0tYXBwLXBhdGggPHBhdGg+JywgXCJPdmVycmlkZSB0aGUgcGF0aCB0byB0aGUgRWxlY3Ryb24gYXBwIHRvIGxhdW5jaCAoZGVmYXVsdHMgdG8gJy4nKVwiKVxuICAgIC5vcHRpb24oJy1sLCAtLWVuYWJsZS1sb2dnaW5nJywgJ0VuYWJsZSBhZHZhbmNlZCBsb2dnaW5nLiAgVGhpcyB3aWxsIGxvZyBpbnRlcm5hbCBFbGVjdHJvbiB0aGluZ3MnKVxuICAgIC5vcHRpb24oJy1uLCAtLXJ1bi1hcy1ub2RlJywgJ1J1biB0aGUgRWxlY3Ryb24gYXBwIGFzIGEgTm9kZS5KUyBzY3JpcHQnKVxuICAgIC5vcHRpb24oJy0tdnNjb2RlJywgJ1VzZWQgdG8gZW5hYmxlIGFyZyB0cmFuc2Zvcm1hdGlvbiBmb3IgZGVidWdnaW5nIEVsZWN0cm9uIHRocm91Z2ggVlNDb2RlLiAgRG8gbm90IHVzZSB5b3Vyc2VsZi4nKVxuICAgIC5vcHRpb24oJy1pLCAtLWluc3BlY3QtZWxlY3Ryb24nLCAnVHJpZ2dlcnMgaW5zcGVjdCBtb2RlIG9uIEVsZWN0cm9uIHRvIGFsbG93IGRlYnVnZ2luZyB0aGUgbWFpbiBwcm9jZXNzLiAgRWxlY3Ryb24gPjEuNyBvbmx5JylcbiAgICAuYWN0aW9uKChjd2QpID0+IHtcbiAgICAgIGlmICghY3dkKSByZXR1cm47XG4gICAgICBpZiAocGF0aC5pc0Fic29sdXRlKGN3ZCkgJiYgZnMuZXhpc3RzU3luYyhjd2QpKSB7XG4gICAgICAgIGRpciA9IGN3ZDtcbiAgICAgIH0gZWxzZSBpZiAoZnMuZXhpc3RzU3luYyhwYXRoLnJlc29sdmUoZGlyLCBjd2QpKSkge1xuICAgICAgICBkaXIgPSBwYXRoLnJlc29sdmUoZGlyLCBjd2QpO1xuICAgICAgfVxuICAgIH0pXG4gICAgLnBhcnNlKGNvbW1hbmRBcmdzKTtcblxuICBwcm9ncmFtLm9uKCctLWhlbHAnLCAoKSA9PiB7XG4gICAgY29uc29sZS5sb2coXCIgIEFueSBhcmd1bWVudHMgZm91bmQgYWZ0ZXIgJy0tJyB3aWxsIGJlIHBhc3NlZCB0byB0aGUgRWxlY3Ryb24gYXBwLCBlLmcuXCIpO1xuICAgIGNvbnNvbGUubG9nKCcnKTtcbiAgICBjb25zb2xlLmxvZygnICAgICQgZWxlY3Ryb24tZm9yZ2UgL3BhdGgvdG8vcHJvamVjdCAtbCAtLSAtZCAtZiBmb28udHh0Jyk7XG4gICAgY29uc29sZS5sb2coJycpO1xuICAgIGNvbnNvbGUubG9nKFwiICB3aWxsIHBhc3MgdGhlIGFyZ3VtZW50cyAnLWQgLWYgZm9vLnR4dCcgdG8gdGhlIEVsZWN0cm9uIGFwcFwiKTtcbiAgfSk7XG5cbiAgY29uc3Qgb3B0cyA9IHtcbiAgICBkaXIsXG4gICAgaW50ZXJhY3RpdmU6IHRydWUsXG4gICAgZW5hYmxlTG9nZ2luZzogISFwcm9ncmFtLmVuYWJsZUxvZ2dpbmcsXG4gICAgcnVuQXNOb2RlOiAhIXByb2dyYW0ucnVuQXNOb2RlLFxuICAgIGluc3BlY3Q6ICEhcHJvZ3JhbS5pbnNwZWN0RWxlY3Ryb24sXG4gIH07XG5cbiAgaWYgKHByb2dyYW0udnNjb2RlICYmIGFwcEFyZ3MpIHtcbiAgICAvLyBBcmdzIGFyZSBpbiB0aGUgZm9ybWF0IH5hcmd+IHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlIFwiflwiXG4gICAgYXBwQXJncyA9IGFwcEFyZ3NcbiAgICAgIC5tYXAoYXJnID0+IGFyZy5zdWJzdHIoMSwgYXJnLmxlbmd0aCAtIDIpKVxuICAgICAgLmZpbHRlcihhcmcgPT4gYXJnLmxlbmd0aCA+IDApO1xuICB9XG5cbiAgaWYgKHByb2dyYW0uYXBwUGF0aCkgb3B0cy5hcHBQYXRoID0gcHJvZ3JhbS5hcHBQYXRoO1xuICBpZiAoYXBwQXJncykgb3B0cy5hcmdzID0gYXBwQXJncztcblxuICBjb25zdCBzcGF3bmVkID0gYXdhaXQgc3RhcnQob3B0cyk7XG5cbiAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICBzcGF3bmVkLm9uKCdleGl0JywgKGNvZGUpID0+IHtcbiAgICAgIGlmIChjb2RlICE9PSAwKSB7XG4gICAgICAgIHByb2Nlc3MuZXhpdChjb2RlKTtcbiAgICAgIH1cbiAgICAgIHJlc29sdmUoKTtcbiAgICB9KTtcbiAgfSk7XG59KSgpO1xuIl19
\No newline at end of file