electron-forge
Version:
A complete tool for building modern Electron applications
129 lines (98 loc) • 8.23 kB
JavaScript
;
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==