UNPKG

electron-forge

Version:

A complete tool for building modern Electron applications

108 lines (82 loc) 10.5 kB
'use strict'; var _regenerator = require('babel-runtime/regenerator'); var _regenerator2 = _interopRequireDefault(_regenerator); var _promise = require('babel-runtime/core-js/promise'); var _promise2 = _interopRequireDefault(_promise); var _bluebird = require('bluebird'); var _fsExtra = require('fs-extra'); var _fsExtra2 = _interopRequireDefault(_fsExtra); var _path = require('path'); var _path2 = _interopRequireDefault(_path); var _commander = require('commander'); var _commander2 = _interopRequireDefault(_commander); require('./util/terminate'); var _api = require('./api'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } (0, _bluebird.coroutine)(_regenerator2.default.mark(function _callee() { var commandArgs, appArgs, doubleDashIndex, dir, opts, spawned; return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: commandArgs = process.argv; appArgs = void 0; doubleDashIndex = process.argv.indexOf('--'); if (doubleDashIndex !== -1) { commandArgs = process.argv.slice(0, doubleDashIndex); appArgs = process.argv.slice(doubleDashIndex + 1); } dir = process.cwd(); _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) { if (!cwd) return; if (_path2.default.isAbsolute(cwd) && _fsExtra2.default.existsSync(cwd)) { dir = cwd; } else if (_fsExtra2.default.existsSync(_path2.default.resolve(dir, cwd))) { dir = _path2.default.resolve(dir, cwd); } }).parse(commandArgs); _commander2.default.on('--help', function () { console.log(" Any arguments found after '--' will be passed to the Electron app, e.g."); console.log(''); console.log(' $ electron-forge /path/to/project -l -- -d -f foo.txt'); console.log(''); console.log(" will pass the arguments '-d -f foo.txt' to the Electron app"); }); opts = { dir: dir, interactive: true, enableLogging: !!_commander2.default.enableLogging, runAsNode: !!_commander2.default.runAsNode, inspect: !!_commander2.default.inspectElectron }; if (_commander2.default.vscode && appArgs) { // Args are in the format ~arg~ so we need to strip the "~" appArgs = appArgs.map(function (arg) { return arg.substr(1, arg.length - 2); }).filter(function (arg) { return arg.length > 0; }); } if (_commander2.default.appPath) opts.appPath = _commander2.default.appPath; if (appArgs) opts.args = appArgs; _context.next = 13; return (0, _api.start)(opts); case 13: spawned = _context.sent; _context.next = 16; return new _promise2.default(function (resolve) { spawned.on('exit', function (code) { if (code !== 0) { process.exit(code); } resolve(); }); }); case 16: case 'end': return _context.stop(); } } }, _callee, undefined); }))(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVsZWN0cm9uLWZvcmdlLXN0YXJ0LmpzIl0sIm5hbWVzIjpbImNvbW1hbmRBcmdzIiwicHJvY2VzcyIsImFyZ3YiLCJhcHBBcmdzIiwiZG91YmxlRGFzaEluZGV4IiwiaW5kZXhPZiIsInNsaWNlIiwiZGlyIiwiY3dkIiwidmVyc2lvbiIsInJlcXVpcmUiLCJhcmd1bWVudHMiLCJvcHRpb24iLCJhY3Rpb24iLCJpc0Fic29sdXRlIiwiZXhpc3RzU3luYyIsInJlc29sdmUiLCJwYXJzZSIsIm9uIiwiY29uc29sZSIsImxvZyIsIm9wdHMiLCJpbnRlcmFjdGl2ZSIsImVuYWJsZUxvZ2dpbmciLCJydW5Bc05vZGUiLCJpbnNwZWN0IiwiaW5zcGVjdEVsZWN0cm9uIiwidnNjb2RlIiwibWFwIiwiYXJnIiwic3Vic3RyIiwibGVuZ3RoIiwiZmlsdGVyIiwiYXBwUGF0aCIsImFyZ3MiLCJzcGF3bmVkIiwiY29kZSIsImV4aXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUVBOztBQUNBOzs7O0FBRUEsb0RBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0tBLHFCQURMLEdBQ21CQyxRQUFRQyxJQUQzQjtBQUVLQyxpQkFGTDtBQUlPQyx5QkFKUCxHQUl5QkgsUUFBUUMsSUFBUixDQUFhRyxPQUFiLENBQXFCLElBQXJCLENBSnpCOztBQUtDLGNBQUlELG9CQUFvQixDQUFDLENBQXpCLEVBQTRCO0FBQzFCSiwwQkFBY0MsUUFBUUMsSUFBUixDQUFhSSxLQUFiLENBQW1CLENBQW5CLEVBQXNCRixlQUF0QixDQUFkO0FBQ0FELHNCQUFVRixRQUFRQyxJQUFSLENBQWFJLEtBQWIsQ0FBbUJGLGtCQUFrQixDQUFyQyxDQUFWO0FBQ0Q7O0FBRUdHLGFBVkwsR0FVV04sUUFBUU8sR0FBUixFQVZYOztBQVdDLDhCQUNHQyxPQURILENBQ1dDLFFBQVEsaUJBQVIsRUFBMkJELE9BRHRDLEVBRUdFLFNBRkgsQ0FFYSxPQUZiLEVBR0dDLE1BSEgsQ0FHVSx1QkFIVixFQUdtQyxtRUFIbkMsRUFJR0EsTUFKSCxDQUlVLHNCQUpWLEVBSWtDLGtFQUpsQyxFQUtHQSxNQUxILENBS1UsbUJBTFYsRUFLK0IsMENBTC9CLEVBTUdBLE1BTkgsQ0FNVSxVQU5WLEVBTXNCLGdHQU50QixFQU9HQSxNQVBILENBT1Usd0JBUFYsRUFPb0MsNEZBUHBDLEVBUUdDLE1BUkgsQ0FRVSxVQUFDTCxHQUFELEVBQVM7QUFDZixnQkFBSSxDQUFDQSxHQUFMLEVBQVU7QUFDVixnQkFBSSxlQUFLTSxVQUFMLENBQWdCTixHQUFoQixLQUF3QixrQkFBR08sVUFBSCxDQUFjUCxHQUFkLENBQTVCLEVBQWdEO0FBQzlDRCxvQkFBTUMsR0FBTjtBQUNELGFBRkQsTUFFTyxJQUFJLGtCQUFHTyxVQUFILENBQWMsZUFBS0MsT0FBTCxDQUFhVCxHQUFiLEVBQWtCQyxHQUFsQixDQUFkLENBQUosRUFBMkM7QUFDaERELG9CQUFNLGVBQUtTLE9BQUwsQ0FBYVQsR0FBYixFQUFrQkMsR0FBbEIsQ0FBTjtBQUNEO0FBQ0YsV0FmSCxFQWdCR1MsS0FoQkgsQ0FnQlNqQixXQWhCVDs7QUFrQkEsOEJBQVFrQixFQUFSLENBQVcsUUFBWCxFQUFxQixZQUFNO0FBQ3pCQyxvQkFBUUMsR0FBUixDQUFZLDJFQUFaO0FBQ0FELG9CQUFRQyxHQUFSLENBQVksRUFBWjtBQUNBRCxvQkFBUUMsR0FBUixDQUFZLDJEQUFaO0FBQ0FELG9CQUFRQyxHQUFSLENBQVksRUFBWjtBQUNBRCxvQkFBUUMsR0FBUixDQUFZLCtEQUFaO0FBQ0QsV0FORDs7QUFRTUMsY0FyQ1AsR0FxQ2M7QUFDWGQsb0JBRFc7QUFFWGUseUJBQWEsSUFGRjtBQUdYQywyQkFBZSxDQUFDLENBQUMsb0JBQVFBLGFBSGQ7QUFJWEMsdUJBQVcsQ0FBQyxDQUFDLG9CQUFRQSxTQUpWO0FBS1hDLHFCQUFTLENBQUMsQ0FBQyxvQkFBUUM7QUFMUixXQXJDZDs7O0FBNkNDLGNBQUksb0JBQVFDLE1BQVIsSUFBa0J4QixPQUF0QixFQUErQjtBQUM3QjtBQUNBQSxzQkFBVUEsUUFDUHlCLEdBRE8sQ0FDSDtBQUFBLHFCQUFPQyxJQUFJQyxNQUFKLENBQVcsQ0FBWCxFQUFjRCxJQUFJRSxNQUFKLEdBQWEsQ0FBM0IsQ0FBUDtBQUFBLGFBREcsRUFFUEMsTUFGTyxDQUVBO0FBQUEscUJBQU9ILElBQUlFLE1BQUosR0FBYSxDQUFwQjtBQUFBLGFBRkEsQ0FBVjtBQUdEOztBQUVELGNBQUksb0JBQVFFLE9BQVosRUFBcUJaLEtBQUtZLE9BQUwsR0FBZSxvQkFBUUEsT0FBdkI7QUFDckIsY0FBSTlCLE9BQUosRUFBYWtCLEtBQUthLElBQUwsR0FBWS9CLE9BQVo7O0FBckRkO0FBQUEsaUJBdUR1QixnQkFBTWtCLElBQU4sQ0F2RHZCOztBQUFBO0FBdURPYyxpQkF2RFA7QUFBQTtBQUFBLGlCQXlETyxzQkFBWSxVQUFDbkIsT0FBRCxFQUFhO0FBQzdCbUIsb0JBQVFqQixFQUFSLENBQVcsTUFBWCxFQUFtQixVQUFDa0IsSUFBRCxFQUFVO0FBQzNCLGtCQUFJQSxTQUFTLENBQWIsRUFBZ0I7QUFDZG5DLHdCQUFRb0MsSUFBUixDQUFhRCxJQUFiO0FBQ0Q7QUFDRHBCO0FBQ0QsYUFMRDtBQU1ELFdBUEssQ0F6RFA7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsQ0FBRCIsImZpbGUiOiJlbGVjdHJvbi1mb3JnZS1zdGFydC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCBwcm9ncmFtIGZyb20gJ2NvbW1hbmRlcic7XG5cbmltcG9ydCAnLi91dGlsL3Rlcm1pbmF0ZSc7XG5pbXBvcnQgeyBzdGFydCB9IGZyb20gJy4vYXBpJztcblxuKGFzeW5jICgpID0+IHtcbiAgbGV0IGNvbW1hbmRBcmdzID0gcHJvY2Vzcy5hcmd2O1xuICBsZXQgYXBwQXJncztcblxuICBjb25zdCBkb3VibGVEYXNoSW5kZXggPSBwcm9jZXNzLmFyZ3YuaW5kZXhPZignLS0nKTtcbiAgaWYgKGRvdWJsZURhc2hJbmRleCAhPT0gLTEpIHtcbiAgICBjb21tYW5kQXJncyA9IHByb2Nlc3MuYXJndi5zbGljZSgwLCBkb3VibGVEYXNoSW5kZXgpO1xuICAgIGFwcEFyZ3MgPSBwcm9jZXNzLmFyZ3Yuc2xpY2UoZG91YmxlRGFzaEluZGV4ICsgMSk7XG4gIH1cblxuICBsZXQgZGlyID0gcHJvY2Vzcy5jd2QoKTtcbiAgcHJvZ3JhbVxuICAgIC52ZXJzaW9uKHJlcXVpcmUoJy4uL3BhY2thZ2UuanNvbicpLnZlcnNpb24pXG4gICAgLmFyZ3VtZW50cygnW2N3ZF0nKVxuICAgIC5vcHRpb24oJy1wLCAtLWFwcC1wYXRoIDxwYXRoPicsIFwiT3ZlcnJpZGUgdGhlIHBhdGggdG8gdGhlIEVsZWN0cm9uIGFwcCB0byBsYXVuY2ggKGRlZmF1bHRzIHRvICcuJylcIilcbiAgICAub3B0aW9uKCctbCwgLS1lbmFibGUtbG9nZ2luZycsICdFbmFibGUgYWR2YW5jZWQgbG9nZ2luZy4gIFRoaXMgd2lsbCBsb2cgaW50ZXJuYWwgRWxlY3Ryb24gdGhpbmdzJylcbiAgICAub3B0aW9uKCctbiwgLS1ydW4tYXMtbm9kZScsICdSdW4gdGhlIEVsZWN0cm9uIGFwcCBhcyBhIE5vZGUuSlMgc2NyaXB0JylcbiAgICAub3B0aW9uKCctLXZzY29kZScsICdVc2VkIHRvIGVuYWJsZSBhcmcgdHJhbnNmb3JtYXRpb24gZm9yIGRlYnVnZ2luZyBFbGVjdHJvbiB0aHJvdWdoIFZTQ29kZS4gIERvIG5vdCB1c2UgeW91cnNlbGYuJylcbiAgICAub3B0aW9uKCctaSwgLS1pbnNwZWN0LWVsZWN0cm9uJywgJ1RyaWdnZXJzIGluc3BlY3QgbW9kZSBvbiBFbGVjdHJvbiB0byBhbGxvdyBkZWJ1Z2dpbmcgdGhlIG1haW4gcHJvY2Vzcy4gIEVsZWN0cm9uID4xLjcgb25seScpXG4gICAgLmFjdGlvbigoY3dkKSA9PiB7XG4gICAgICBpZiAoIWN3ZCkgcmV0dXJuO1xuICAgICAgaWYgKHBhdGguaXNBYnNvbHV0ZShjd2QpICYmIGZzLmV4aXN0c1N5bmMoY3dkKSkge1xuICAgICAgICBkaXIgPSBjd2Q7XG4gICAgICB9IGVsc2UgaWYgKGZzLmV4aXN0c1N5bmMocGF0aC5yZXNvbHZlKGRpciwgY3dkKSkpIHtcbiAgICAgICAgZGlyID0gcGF0aC5yZXNvbHZlKGRpciwgY3dkKTtcbiAgICAgIH1cbiAgICB9KVxuICAgIC5wYXJzZShjb21tYW5kQXJncyk7XG5cbiAgcHJvZ3JhbS5vbignLS1oZWxwJywgKCkgPT4ge1xuICAgIGNvbnNvbGUubG9nKFwiICBBbnkgYXJndW1lbnRzIGZvdW5kIGFmdGVyICctLScgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIEVsZWN0cm9uIGFwcCwgZS5nLlwiKTtcbiAgICBjb25zb2xlLmxvZygnJyk7XG4gICAgY29uc29sZS5sb2coJyAgICAkIGVsZWN0cm9uLWZvcmdlIC9wYXRoL3RvL3Byb2plY3QgLWwgLS0gLWQgLWYgZm9vLnR4dCcpO1xuICAgIGNvbnNvbGUubG9nKCcnKTtcbiAgICBjb25zb2xlLmxvZyhcIiAgd2lsbCBwYXNzIHRoZSBhcmd1bWVudHMgJy1kIC1mIGZvby50eHQnIHRvIHRoZSBFbGVjdHJvbiBhcHBcIik7XG4gIH0pO1xuXG4gIGNvbnN0IG9wdHMgPSB7XG4gICAgZGlyLFxuICAgIGludGVyYWN0aXZlOiB0cnVlLFxuICAgIGVuYWJsZUxvZ2dpbmc6ICEhcHJvZ3JhbS5lbmFibGVMb2dnaW5nLFxuICAgIHJ1bkFzTm9kZTogISFwcm9ncmFtLnJ1bkFzTm9kZSxcbiAgICBpbnNwZWN0OiAhIXByb2dyYW0uaW5zcGVjdEVsZWN0cm9uLFxuICB9O1xuXG4gIGlmIChwcm9ncmFtLnZzY29kZSAmJiBhcHBBcmdzKSB7XG4gICAgLy8gQXJncyBhcmUgaW4gdGhlIGZvcm1hdCB+YXJnfiBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZSBcIn5cIlxuICAgIGFwcEFyZ3MgPSBhcHBBcmdzXG4gICAgICAubWFwKGFyZyA9PiBhcmcuc3Vic3RyKDEsIGFyZy5sZW5ndGggLSAyKSlcbiAgICAgIC5maWx0ZXIoYXJnID0+IGFyZy5sZW5ndGggPiAwKTtcbiAgfVxuXG4gIGlmIChwcm9ncmFtLmFwcFBhdGgpIG9wdHMuYXBwUGF0aCA9IHByb2dyYW0uYXBwUGF0aDtcbiAgaWYgKGFwcEFyZ3MpIG9wdHMuYXJncyA9IGFwcEFyZ3M7XG5cbiAgY29uc3Qgc3Bhd25lZCA9IGF3YWl0IHN0YXJ0KG9wdHMpO1xuXG4gIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgc3Bhd25lZC5vbignZXhpdCcsIChjb2RlKSA9PiB7XG4gICAgICBpZiAoY29kZSAhPT0gMCkge1xuICAgICAgICBwcm9jZXNzLmV4aXQoY29kZSk7XG4gICAgICB9XG4gICAgICByZXNvbHZlKCk7XG4gICAgfSk7XG4gIH0pO1xufSkoKTtcbiJdfQ==