electron-forge
Version:
A complete tool for building modern Electron applications
172 lines (131 loc) • 9.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.unmountImage = exports.mountImage = exports.getMountedImages = undefined;
var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
var _getIterator2 = require('babel-runtime/core-js/get-iterator');
var _getIterator3 = _interopRequireDefault(_getIterator2);
var _bluebird = require('bluebird');
var _spawnRx = require('spawn-rx');
var _debug = require('debug');
var _debug2 = _interopRequireDefault(_debug);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var d = (0, _debug2.default)('electron-forge:hdiutil');
var getMountedImages = exports.getMountedImages = function () {
var _ref = (0, _bluebird.coroutine)(_regenerator2.default.mark(function _callee() {
var output, mounts, mountObjects, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, mount, mountPath, imagePath;
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return (0, _spawnRx.spawnPromise)('hdiutil', ['info']);
case 2:
output = _context.sent;
mounts = output.split(/====\n/g);
mounts.shift();
mountObjects = [];
_iteratorNormalCompletion = true;
_didIteratorError = false;
_iteratorError = undefined;
_context.prev = 9;
for (_iterator = (0, _getIterator3.default)(mounts); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
mount = _step.value;
try {
mountPath = /\/Volumes\/(.+)\n/g.exec(mount)[1];
imagePath = /image-path +: +(.+)\n/g.exec(mount)[1];
mountObjects.push({ mountPath: mountPath, imagePath: imagePath });
} catch (err) {
// Ignore
}
}
_context.next = 17;
break;
case 13:
_context.prev = 13;
_context.t0 = _context['catch'](9);
_didIteratorError = true;
_iteratorError = _context.t0;
case 17:
_context.prev = 17;
_context.prev = 18;
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
case 20:
_context.prev = 20;
if (!_didIteratorError) {
_context.next = 23;
break;
}
throw _iteratorError;
case 23:
return _context.finish(20);
case 24:
return _context.finish(17);
case 25:
d('identified active mounts', mountObjects);
return _context.abrupt('return', mountObjects);
case 27:
case 'end':
return _context.stop();
}
}
}, _callee, undefined, [[9, 13, 17, 25], [18,, 20, 24]]);
}));
return function getMountedImages() {
return _ref.apply(this, arguments);
};
}();
var mountImage = exports.mountImage = function () {
var _ref2 = (0, _bluebird.coroutine)(_regenerator2.default.mark(function _callee2(filePath) {
var output, mountPath;
return _regenerator2.default.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
d('mounting image:', filePath);
_context2.next = 3;
return (0, _spawnRx.spawnPromise)('hdiutil', ['attach', '-noautoopen', '-nobrowse', '-noverify', filePath]);
case 3:
output = _context2.sent;
mountPath = /\/Volumes\/(.+)\n/g.exec(output)[1];
d('mounted at:', mountPath);
return _context2.abrupt('return', {
mountPath: mountPath,
imagePath: filePath
});
case 7:
case 'end':
return _context2.stop();
}
}
}, _callee2, undefined);
}));
return function mountImage(_x) {
return _ref2.apply(this, arguments);
};
}();
var unmountImage = exports.unmountImage = function () {
var _ref3 = (0, _bluebird.coroutine)(_regenerator2.default.mark(function _callee3(mount) {
return _regenerator2.default.wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
d('unmounting current mount:', mount);
_context3.next = 3;
return (0, _spawnRx.spawnPromise)('hdiutil', ['unmount', '-force', '/Volumes/' + mount.mountPath]);
case 3:
case 'end':
return _context3.stop();
}
}
}, _callee3, undefined);
}));
return function unmountImage(_x2) {
return _ref3.apply(this, arguments);
};
}();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWwvaGRpdXRpbC5qcyJdLCJuYW1lcyI6WyJkIiwiZ2V0TW91bnRlZEltYWdlcyIsIm91dHB1dCIsIm1vdW50cyIsInNwbGl0Iiwic2hpZnQiLCJtb3VudE9iamVjdHMiLCJtb3VudCIsIm1vdW50UGF0aCIsImV4ZWMiLCJpbWFnZVBhdGgiLCJwdXNoIiwiZXJyIiwibW91bnRJbWFnZSIsImZpbGVQYXRoIiwidW5tb3VudEltYWdlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOzs7Ozs7QUFFQSxJQUFNQSxJQUFJLHFCQUFNLHdCQUFOLENBQVY7O0FBRU8sSUFBTUM7QUFBQSxpRUFBbUI7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUJBQ1QsMkJBQWEsU0FBYixFQUF3QixDQUFDLE1BQUQsQ0FBeEIsQ0FEUzs7QUFBQTtBQUN4QkMsa0JBRHdCO0FBRXhCQyxrQkFGd0IsR0FFZkQsT0FBT0UsS0FBUCxDQUFhLFNBQWIsQ0FGZTs7QUFHOUJELG1CQUFPRSxLQUFQOztBQUVNQyx3QkFMd0IsR0FLVCxFQUxTO0FBQUE7QUFBQTtBQUFBO0FBQUE7OztBQU85Qix3REFBb0JILE1BQXBCLHFHQUE0QjtBQUFqQkksbUJBQWlCOztBQUMxQixrQkFBSTtBQUNJQyx5QkFESixHQUNnQixxQkFBcUJDLElBQXJCLENBQTBCRixLQUExQixFQUFpQyxDQUFqQyxDQURoQjtBQUVJRyx5QkFGSixHQUVnQix5QkFBeUJELElBQXpCLENBQThCRixLQUE5QixFQUFxQyxDQUFyQyxDQUZoQjs7QUFHRkQsNkJBQWFLLElBQWIsQ0FBa0IsRUFBRUgsb0JBQUYsRUFBYUUsb0JBQWIsRUFBbEI7QUFDRCxlQUpELENBSUUsT0FBT0UsR0FBUCxFQUFZO0FBQ1o7QUFDRDtBQUNGOztBQWY2QjtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBOztBQUFBO0FBQUE7O0FBQUE7QUFBQTs7QUFBQTtBQWlCOUJaLGNBQUUsMEJBQUYsRUFBOEJNLFlBQTlCO0FBakI4Qiw2Q0FrQnZCQSxZQWxCdUI7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsR0FBbkI7O0FBQUE7QUFBQTtBQUFBO0FBQUEsR0FBTjs7QUFxQkEsSUFBTU87QUFBQSxrRUFBYSxrQkFBT0MsUUFBUDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDeEJkLGNBQUUsaUJBQUYsRUFBcUJjLFFBQXJCO0FBRHdCO0FBQUEsbUJBRUgsMkJBQWEsU0FBYixFQUF3QixDQUFDLFFBQUQsRUFBVyxhQUFYLEVBQTBCLFdBQTFCLEVBQXVDLFdBQXZDLEVBQW9EQSxRQUFwRCxDQUF4QixDQUZHOztBQUFBO0FBRWxCWixrQkFGa0I7QUFHbEJNLHFCQUhrQixHQUdOLHFCQUFxQkMsSUFBckIsQ0FBMEJQLE1BQTFCLEVBQWtDLENBQWxDLENBSE07O0FBSXhCRixjQUFFLGFBQUYsRUFBaUJRLFNBQWpCOztBQUp3Qiw4Q0FNakI7QUFDTEEsa0NBREs7QUFFTEUseUJBQVdJO0FBRk4sYUFOaUI7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsR0FBYjs7QUFBQTtBQUFBO0FBQUE7QUFBQSxHQUFOOztBQVlBLElBQU1DO0FBQUEsa0VBQWUsa0JBQU9SLEtBQVA7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUMxQlAsY0FBRSwyQkFBRixFQUErQk8sS0FBL0I7QUFEMEI7QUFBQSxtQkFFcEIsMkJBQWEsU0FBYixFQUF3QixDQUFDLFNBQUQsRUFBWSxRQUFaLGdCQUFrQ0EsTUFBTUMsU0FBeEMsQ0FBeEIsQ0FGb0I7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsR0FBZjs7QUFBQTtBQUFBO0FBQUE7QUFBQSxHQUFOIiwiZmlsZSI6InV0aWwvaGRpdXRpbC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNwYXduUHJvbWlzZSB9IGZyb20gJ3NwYXduLXJ4JztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5cbmNvbnN0IGQgPSBkZWJ1ZygnZWxlY3Ryb24tZm9yZ2U6aGRpdXRpbCcpO1xuXG5leHBvcnQgY29uc3QgZ2V0TW91bnRlZEltYWdlcyA9IGFzeW5jICgpID0+IHtcbiAgY29uc3Qgb3V0cHV0ID0gYXdhaXQgc3Bhd25Qcm9taXNlKCdoZGl1dGlsJywgWydpbmZvJ10pO1xuICBjb25zdCBtb3VudHMgPSBvdXRwdXQuc3BsaXQoLz09PT1cXG4vZyk7XG4gIG1vdW50cy5zaGlmdCgpO1xuXG4gIGNvbnN0IG1vdW50T2JqZWN0cyA9IFtdO1xuXG4gIGZvciAoY29uc3QgbW91bnQgb2YgbW91bnRzKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1vdW50UGF0aCA9IC9cXC9Wb2x1bWVzXFwvKC4rKVxcbi9nLmV4ZWMobW91bnQpWzFdO1xuICAgICAgY29uc3QgaW1hZ2VQYXRoID0gL2ltYWdlLXBhdGggKzogKyguKylcXG4vZy5leGVjKG1vdW50KVsxXTtcbiAgICAgIG1vdW50T2JqZWN0cy5wdXNoKHsgbW91bnRQYXRoLCBpbWFnZVBhdGggfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAvLyBJZ25vcmVcbiAgICB9XG4gIH1cblxuICBkKCdpZGVudGlmaWVkIGFjdGl2ZSBtb3VudHMnLCBtb3VudE9iamVjdHMpO1xuICByZXR1cm4gbW91bnRPYmplY3RzO1xufTtcblxuZXhwb3J0IGNvbnN0IG1vdW50SW1hZ2UgPSBhc3luYyAoZmlsZVBhdGgpID0+IHtcbiAgZCgnbW91bnRpbmcgaW1hZ2U6JywgZmlsZVBhdGgpO1xuICBjb25zdCBvdXRwdXQgPSBhd2FpdCBzcGF3blByb21pc2UoJ2hkaXV0aWwnLCBbJ2F0dGFjaCcsICctbm9hdXRvb3BlbicsICctbm9icm93c2UnLCAnLW5vdmVyaWZ5JywgZmlsZVBhdGhdKTtcbiAgY29uc3QgbW91bnRQYXRoID0gL1xcL1ZvbHVtZXNcXC8oLispXFxuL2cuZXhlYyhvdXRwdXQpWzFdO1xuICBkKCdtb3VudGVkIGF0OicsIG1vdW50UGF0aCk7XG5cbiAgcmV0dXJuIHtcbiAgICBtb3VudFBhdGgsXG4gICAgaW1hZ2VQYXRoOiBmaWxlUGF0aCxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB1bm1vdW50SW1hZ2UgPSBhc3luYyAobW91bnQpID0+IHtcbiAgZCgndW5tb3VudGluZyBjdXJyZW50IG1vdW50OicsIG1vdW50KTtcbiAgYXdhaXQgc3Bhd25Qcm9taXNlKCdoZGl1dGlsJywgWyd1bm1vdW50JywgJy1mb3JjZScsIGAvVm9sdW1lcy8ke21vdW50Lm1vdW50UGF0aH1gXSk7XG59O1xuIl19