UNPKG

electron-forge

Version:

A complete tool for building modern Electron applications

90 lines (66 loc) 6.21 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); 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 _child_process = require('child_process'); var _fsExtra = require('fs-extra'); var _fsExtra2 = _interopRequireDefault(_fsExtra); var _path = require('path'); var _path2 = _interopRequireDefault(_path); var _moveApp = require('../../util/move-app'); var _moveApp2 = _interopRequireDefault(_moveApp); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = function () { var _ref = (0, _bluebird.coroutine)(_regenerator2.default.mark(function _callee(filePath, installSpinner) { var appPath, targetApplicationPath; return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return new _promise2.default(function (resolve) { var child = (0, _child_process.spawn)('unzip', ['-q', '-o', _path2.default.basename(filePath)], { cwd: _path2.default.dirname(filePath) }); child.stdout.on('data', function () {}); child.stderr.on('data', function () {}); child.on('exit', function () { return resolve(); }); }); case 2: _context.next = 4; return _fsExtra2.default.readdir(_path2.default.dirname(filePath)); case 4: _context.t0 = function (file) { return file.endsWith('.app'); }; _context.t1 = function (file) { return _path2.default.resolve(_path2.default.dirname(filePath), file); }; _context.t2 = function (fA, fB) { return _fsExtra2.default.statSync(fA).ctime.getTime() - _fsExtra2.default.statSync(fB).ctime.getTime(); }; appPath = _context.sent.filter(_context.t0).map(_context.t1).sort(_context.t2)[0]; targetApplicationPath = '/Applications/' + _path2.default.basename(appPath); _context.next = 11; return (0, _moveApp2.default)(appPath, targetApplicationPath, installSpinner); case 11: (0, _child_process.spawn)('open', ['-R', targetApplicationPath], { detached: true }); case 12: case 'end': return _context.stop(); } } }, _callee, undefined); })); return function (_x, _x2) { return _ref.apply(this, arguments); }; }(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluc3RhbGxlcnMvZGFyd2luL3ppcC5qcyJdLCJuYW1lcyI6WyJmaWxlUGF0aCIsImluc3RhbGxTcGlubmVyIiwicmVzb2x2ZSIsImNoaWxkIiwiYmFzZW5hbWUiLCJjd2QiLCJkaXJuYW1lIiwic3Rkb3V0Iiwib24iLCJzdGRlcnIiLCJyZWFkZGlyIiwiZmlsZSIsImVuZHNXaXRoIiwiZkEiLCJmQiIsInN0YXRTeW5jIiwiY3RpbWUiLCJnZXRUaW1lIiwiYXBwUGF0aCIsImZpbHRlciIsIm1hcCIsInNvcnQiLCJ0YXJnZXRBcHBsaWNhdGlvblBhdGgiLCJkZXRhY2hlZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7OztpRUFFZSxpQkFBT0EsUUFBUCxFQUFpQkMsY0FBakI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFDUCxzQkFBWSxVQUFDQyxPQUFELEVBQWE7QUFDN0Isa0JBQU1DLFFBQVEsMEJBQU0sT0FBTixFQUFlLENBQUMsSUFBRCxFQUFPLElBQVAsRUFBYSxlQUFLQyxRQUFMLENBQWNKLFFBQWQsQ0FBYixDQUFmLEVBQXNEO0FBQ2xFSyxxQkFBSyxlQUFLQyxPQUFMLENBQWFOLFFBQWI7QUFENkQsZUFBdEQsQ0FBZDtBQUdBRyxvQkFBTUksTUFBTixDQUFhQyxFQUFiLENBQWdCLE1BQWhCLEVBQXdCLFlBQU0sQ0FBRSxDQUFoQztBQUNBTCxvQkFBTU0sTUFBTixDQUFhRCxFQUFiLENBQWdCLE1BQWhCLEVBQXdCLFlBQU0sQ0FBRSxDQUFoQztBQUNBTCxvQkFBTUssRUFBTixDQUFTLE1BQVQsRUFBaUI7QUFBQSx1QkFBTU4sU0FBTjtBQUFBLGVBQWpCO0FBQ0QsYUFQSyxDQURPOztBQUFBO0FBQUE7QUFBQSxtQkFVVSxrQkFBR1EsT0FBSCxDQUFXLGVBQUtKLE9BQUwsQ0FBYU4sUUFBYixDQUFYLENBVlY7O0FBQUE7QUFBQSwwQkFVcUQ7QUFBQSxxQkFBUVcsS0FBS0MsUUFBTCxDQUFjLE1BQWQsQ0FBUjtBQUFBLGFBVnJEOztBQUFBLDBCQVdOO0FBQUEscUJBQVEsZUFBS1YsT0FBTCxDQUFhLGVBQUtJLE9BQUwsQ0FBYU4sUUFBYixDQUFiLEVBQXFDVyxJQUFyQyxDQUFSO0FBQUEsYUFYTTs7QUFBQSwwQkFZTCxVQUFDRSxFQUFELEVBQUtDLEVBQUw7QUFBQSxxQkFBWSxrQkFBR0MsUUFBSCxDQUFZRixFQUFaLEVBQWdCRyxLQUFoQixDQUFzQkMsT0FBdEIsS0FBa0Msa0JBQUdGLFFBQUgsQ0FBWUQsRUFBWixFQUFnQkUsS0FBaEIsQ0FBc0JDLE9BQXRCLEVBQTlDO0FBQUEsYUFaSzs7QUFVUEMsbUJBVk8saUJBVThDQyxNQVY5QyxjQVdWQyxHQVhVLGNBWVZDLElBWlUsY0FZMEUsQ0FaMUU7QUFjUEMsaUNBZE8sc0JBY2tDLGVBQUtsQixRQUFMLENBQWNjLE9BQWQsQ0FkbEM7QUFBQTtBQUFBLG1CQWdCUCx1QkFBUUEsT0FBUixFQUFpQkkscUJBQWpCLEVBQXdDckIsY0FBeEMsQ0FoQk87O0FBQUE7O0FBa0JiLHNDQUFNLE1BQU4sRUFBYyxDQUFDLElBQUQsRUFBT3FCLHFCQUFQLENBQWQsRUFBNkMsRUFBRUMsVUFBVSxJQUFaLEVBQTdDOztBQWxCYTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxHIiwiZmlsZSI6Imluc3RhbGxlcnMvZGFyd2luL3ppcC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNwYXduIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgbW92ZUFwcCBmcm9tICcuLi8uLi91dGlsL21vdmUtYXBwJztcblxuZXhwb3J0IGRlZmF1bHQgYXN5bmMgKGZpbGVQYXRoLCBpbnN0YWxsU3Bpbm5lcikgPT4ge1xuICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIGNvbnN0IGNoaWxkID0gc3Bhd24oJ3VuemlwJywgWyctcScsICctbycsIHBhdGguYmFzZW5hbWUoZmlsZVBhdGgpXSwge1xuICAgICAgY3dkOiBwYXRoLmRpcm5hbWUoZmlsZVBhdGgpLFxuICAgIH0pO1xuICAgIGNoaWxkLnN0ZG91dC5vbignZGF0YScsICgpID0+IHt9KTtcbiAgICBjaGlsZC5zdGRlcnIub24oJ2RhdGEnLCAoKSA9PiB7fSk7XG4gICAgY2hpbGQub24oJ2V4aXQnLCAoKSA9PiByZXNvbHZlKCkpO1xuICB9KTtcblxuICBjb25zdCBhcHBQYXRoID0gKGF3YWl0IGZzLnJlYWRkaXIocGF0aC5kaXJuYW1lKGZpbGVQYXRoKSkpLmZpbHRlcihmaWxlID0+IGZpbGUuZW5kc1dpdGgoJy5hcHAnKSlcbiAgICAubWFwKGZpbGUgPT4gcGF0aC5yZXNvbHZlKHBhdGguZGlybmFtZShmaWxlUGF0aCksIGZpbGUpKVxuICAgIC5zb3J0KChmQSwgZkIpID0+IGZzLnN0YXRTeW5jKGZBKS5jdGltZS5nZXRUaW1lKCkgLSBmcy5zdGF0U3luYyhmQikuY3RpbWUuZ2V0VGltZSgpKVswXTtcblxuICBjb25zdCB0YXJnZXRBcHBsaWNhdGlvblBhdGggPSBgL0FwcGxpY2F0aW9ucy8ke3BhdGguYmFzZW5hbWUoYXBwUGF0aCl9YDtcblxuICBhd2FpdCBtb3ZlQXBwKGFwcFBhdGgsIHRhcmdldEFwcGxpY2F0aW9uUGF0aCwgaW5zdGFsbFNwaW5uZXIpO1xuXG4gIHNwYXduKCdvcGVuJywgWyctUicsIHRhcmdldEFwcGxpY2F0aW9uUGF0aF0sIHsgZGV0YWNoZWQ6IHRydWUgfSk7XG59O1xuIl19