UNPKG

electron-forge

Version:

A complete tool for building modern Electron applications

129 lines (98 loc) 8.23 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.isSupportedOnCurrentPlatform = undefined; var _promise = require('babel-runtime/core-js/promise'); var _promise2 = _interopRequireDefault(_promise); var _regenerator = require('babel-runtime/regenerator'); var _regenerator2 = _interopRequireDefault(_regenerator); var _bluebird = require('bluebird'); var _child_process = require('child_process'); var _path = require('path'); var _path2 = _interopRequireDefault(_path); var _pify = require('pify'); var _pify2 = _interopRequireDefault(_pify); var _ensureOutput = require('../../util/ensure-output'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var isSupportedOnCurrentPlatform = exports.isSupportedOnCurrentPlatform = function () { var _ref = (0, _bluebird.coroutine)(_regenerator2.default.mark(function _callee() { return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: return _context.abrupt('return', true); case 1: case 'end': return _context.stop(); } } }, _callee, undefined); })); return function isSupportedOnCurrentPlatform() { return _ref.apply(this, arguments); }; }(); var zipPromise = function zipPromise(from, to) { return new _promise2.default(function (resolve, reject) { var child = (0, _child_process.spawn)('zip', ['-r', '-y', to, _path2.default.basename(from)], { cwd: _path2.default.dirname(from) }); child.stdout.on('data', function () {}); child.stderr.on('data', function () {}); child.on('close', function (code) { if (code === 0) return resolve(); reject(new Error('Failed to zip, exitted with code: ' + code)); }); }); }; exports.default = function () { var _ref2 = (0, _bluebird.coroutine)(_regenerator2.default.mark(function _callee2(_ref3) { var dir = _ref3.dir, appName = _ref3.appName, targetPlatform = _ref3.targetPlatform, packageJSON = _ref3.packageJSON; var zipFolder, zipPath; return _regenerator2.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: zipFolder = require('zip-folder'); zipPath = _path2.default.resolve(dir, '../make', _path2.default.basename(dir) + '-' + packageJSON.version + '.zip'); _context2.next = 4; return (0, _ensureOutput.ensureFile)(zipPath); case 4: _context2.t0 = targetPlatform; _context2.next = _context2.t0 === 'win32' ? 7 : _context2.t0 === 'darwin' ? 10 : _context2.t0 === 'linux' ? 13 : 16; break; case 7: _context2.next = 9; return (0, _pify2.default)(zipFolder)(dir, zipPath); case 9: return _context2.abrupt('break', 17); case 10: _context2.next = 12; return zipPromise(_path2.default.resolve(dir, appName + '.app'), zipPath); case 12: return _context2.abrupt('break', 17); case 13: _context2.next = 15; return zipPromise(dir, zipPath); case 15: return _context2.abrupt('break', 17); case 16: throw new Error('Unrecognized platform'); case 17: return _context2.abrupt('return', [zipPath]); case 18: case 'end': return _context2.stop(); } } }, _callee2, undefined); })); return function (_x) { return _ref2.apply(this, arguments); }; }(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1ha2Vycy9nZW5lcmljL3ppcC5qcyJdLCJuYW1lcyI6WyJpc1N1cHBvcnRlZE9uQ3VycmVudFBsYXRmb3JtIiwiemlwUHJvbWlzZSIsImZyb20iLCJ0byIsInJlc29sdmUiLCJyZWplY3QiLCJjaGlsZCIsImJhc2VuYW1lIiwiY3dkIiwiZGlybmFtZSIsInN0ZG91dCIsIm9uIiwic3RkZXJyIiwiY29kZSIsIkVycm9yIiwiZGlyIiwiYXBwTmFtZSIsInRhcmdldFBsYXRmb3JtIiwicGFja2FnZUpTT04iLCJ6aXBGb2xkZXIiLCJyZXF1aXJlIiwiemlwUGF0aCIsInZlcnNpb24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7Ozs7QUFDQTs7OztBQUVBOzs7O0FBRU8sSUFBTUE7QUFBQSxpRUFBK0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLDZDQUFZLElBQVo7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsR0FBL0I7O0FBQUE7QUFBQTtBQUFBO0FBQUEsR0FBTjs7QUFFUCxJQUFNQyxhQUFhLFNBQWJBLFVBQWEsQ0FBQ0MsSUFBRCxFQUFPQyxFQUFQO0FBQUEsU0FDakIsc0JBQVksVUFBQ0MsT0FBRCxFQUFVQyxNQUFWLEVBQXFCO0FBQy9CLFFBQU1DLFFBQVEsMEJBQU0sS0FBTixFQUFhLENBQUMsSUFBRCxFQUFPLElBQVAsRUFBYUgsRUFBYixFQUFpQixlQUFLSSxRQUFMLENBQWNMLElBQWQsQ0FBakIsQ0FBYixFQUFvRDtBQUNoRU0sV0FBSyxlQUFLQyxPQUFMLENBQWFQLElBQWI7QUFEMkQsS0FBcEQsQ0FBZDs7QUFJQUksVUFBTUksTUFBTixDQUFhQyxFQUFiLENBQWdCLE1BQWhCLEVBQXdCLFlBQU0sQ0FBRSxDQUFoQztBQUNBTCxVQUFNTSxNQUFOLENBQWFELEVBQWIsQ0FBZ0IsTUFBaEIsRUFBd0IsWUFBTSxDQUFFLENBQWhDOztBQUVBTCxVQUFNSyxFQUFOLENBQVMsT0FBVCxFQUFrQixVQUFDRSxJQUFELEVBQVU7QUFDMUIsVUFBSUEsU0FBUyxDQUFiLEVBQWdCLE9BQU9ULFNBQVA7QUFDaEJDLGFBQU8sSUFBSVMsS0FBSix3Q0FBK0NELElBQS9DLENBQVA7QUFDRCxLQUhEO0FBSUQsR0FaRCxDQURpQjtBQUFBLENBQW5COzs7a0VBZWU7QUFBQSxRQUFTRSxHQUFULFNBQVNBLEdBQVQ7QUFBQSxRQUFjQyxPQUFkLFNBQWNBLE9BQWQ7QUFBQSxRQUF1QkMsY0FBdkIsU0FBdUJBLGNBQXZCO0FBQUEsUUFBdUNDLFdBQXZDLFNBQXVDQSxXQUF2QztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDUEMscUJBRE8sR0FDS0MsUUFBUSxZQUFSLENBREw7QUFHUEMsbUJBSE8sR0FHRyxlQUFLakIsT0FBTCxDQUFhVyxHQUFiLEVBQWtCLFNBQWxCLEVBQWdDLGVBQUtSLFFBQUwsQ0FBY1EsR0FBZCxDQUFoQyxTQUFzREcsWUFBWUksT0FBbEUsVUFISDtBQUFBO0FBQUEsbUJBSVAsOEJBQVdELE9BQVgsQ0FKTzs7QUFBQTtBQUFBLDJCQUtMSixjQUxLO0FBQUEsOENBUU4sT0FSTSx3QkFXTixRQVhNLHlCQWdCTixPQWhCTTtBQUFBOztBQUFBO0FBQUE7QUFBQSxtQkFTSCxvQkFBS0UsU0FBTCxFQUFnQkosR0FBaEIsRUFBcUJNLE9BQXJCLENBVEc7O0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUEsbUJBWUhwQixXQUFXLGVBQUtHLE9BQUwsQ0FBYVcsR0FBYixFQUFxQkMsT0FBckIsVUFBWCxFQUFnREssT0FBaEQsQ0FaRzs7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQSxtQkFpQkhwQixXQUFXYyxHQUFYLEVBQWdCTSxPQUFoQixDQWpCRzs7QUFBQTtBQUFBOztBQUFBO0FBQUEsa0JBb0JILElBQUlQLEtBQUosQ0FBVSx1QkFBVixDQXBCRzs7QUFBQTtBQUFBLDhDQXNCTixDQUFDTyxPQUFELENBdEJNOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEciLCJmaWxlIjoibWFrZXJzL2dlbmVyaWMvemlwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3Bhd24gfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHBpZnkgZnJvbSAncGlmeSc7XG5cbmltcG9ydCB7IGVuc3VyZUZpbGUgfSBmcm9tICcuLi8uLi91dGlsL2Vuc3VyZS1vdXRwdXQnO1xuXG5leHBvcnQgY29uc3QgaXNTdXBwb3J0ZWRPbkN1cnJlbnRQbGF0Zm9ybSA9IGFzeW5jICgpID0+IHRydWU7XG5cbmNvbnN0IHppcFByb21pc2UgPSAoZnJvbSwgdG8pID0+XG4gIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBjaGlsZCA9IHNwYXduKCd6aXAnLCBbJy1yJywgJy15JywgdG8sIHBhdGguYmFzZW5hbWUoZnJvbSldLCB7XG4gICAgICBjd2Q6IHBhdGguZGlybmFtZShmcm9tKSxcbiAgICB9KTtcblxuICAgIGNoaWxkLnN0ZG91dC5vbignZGF0YScsICgpID0+IHt9KTtcbiAgICBjaGlsZC5zdGRlcnIub24oJ2RhdGEnLCAoKSA9PiB7fSk7XG5cbiAgICBjaGlsZC5vbignY2xvc2UnLCAoY29kZSkgPT4ge1xuICAgICAgaWYgKGNvZGUgPT09IDApIHJldHVybiByZXNvbHZlKCk7XG4gICAgICByZWplY3QobmV3IEVycm9yKGBGYWlsZWQgdG8gemlwLCBleGl0dGVkIHdpdGggY29kZTogJHtjb2RlfWApKTtcbiAgICB9KTtcbiAgfSk7XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jICh7IGRpciwgYXBwTmFtZSwgdGFyZ2V0UGxhdGZvcm0sIHBhY2thZ2VKU09OIH0pID0+IHtcbiAgY29uc3QgemlwRm9sZGVyID0gcmVxdWlyZSgnemlwLWZvbGRlcicpO1xuXG4gIGNvbnN0IHppcFBhdGggPSBwYXRoLnJlc29sdmUoZGlyLCAnLi4vbWFrZScsIGAke3BhdGguYmFzZW5hbWUoZGlyKX0tJHtwYWNrYWdlSlNPTi52ZXJzaW9ufS56aXBgKTtcbiAgYXdhaXQgZW5zdXJlRmlsZSh6aXBQYXRoKTtcbiAgc3dpdGNoICh0YXJnZXRQbGF0Zm9ybSkge1xuICAgIC8vIFRoaXMgY2FzZSBpcyB0ZXN0ZWQgYnV0IG5vdCBvbiB0aGUgY292ZXJhZ2UgcmVwb3J0aW5nIHBsYXRmb3JtXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBjYXNlICd3aW4zMic6XG4gICAgICBhd2FpdCBwaWZ5KHppcEZvbGRlcikoZGlyLCB6aXBQYXRoKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2Rhcndpbic6XG4gICAgICBhd2FpdCB6aXBQcm9taXNlKHBhdGgucmVzb2x2ZShkaXIsIGAke2FwcE5hbWV9LmFwcGApLCB6aXBQYXRoKTtcbiAgICAgIGJyZWFrO1xuICAgIC8vIFRoaXMgY2FzZSBpcyB0ZXN0ZWQgYnV0IG5vdCBvbiB0aGUgY292ZXJhZ2UgcmVwb3J0aW5nIHBsYXRmb3JtXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBjYXNlICdsaW51eCc6XG4gICAgICBhd2FpdCB6aXBQcm9taXNlKGRpciwgemlwUGF0aCk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbnJlY29nbml6ZWQgcGxhdGZvcm0nKTtcbiAgfVxuICByZXR1cm4gW3ppcFBhdGhdO1xufTtcbiJdfQ==