electron-forge
Version:
A complete tool for building modern Electron applications
128 lines (97 loc) • 3.73 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);
};
}();