UNPKG

electron-forge

Version:

A complete tool for building modern Electron applications

102 lines (80 loc) 6.78 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.unmountImage = exports.mountImage = exports.getMountedImages = undefined; var _getIterator2 = require('babel-runtime/core-js/get-iterator'); var _getIterator3 = _interopRequireDefault(_getIterator2); var _bluebird = require('bluebird'); var _crossSpawnPromise = require('cross-spawn-promise'); var _crossSpawnPromise2 = _interopRequireDefault(_crossSpawnPromise); var _debug = require('debug'); var _debug2 = _interopRequireDefault(_debug); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const d = (0, _debug2.default)('electron-forge:hdiutil'); const getMountedImages = exports.getMountedImages = (() => { var _ref = (0, _bluebird.coroutine)(function* () { const output = yield (0, _crossSpawnPromise2.default)('hdiutil', ['info']); const mounts = output.toString().split(/====\n/g); mounts.shift(); const mountObjects = []; var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = (0, _getIterator3.default)(mounts), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { const mount = _step.value; try { const mountPath = /\/Volumes\/(.+)\n/g.exec(mount)[1]; const imagePath = /image-path +: +(.+)\n/g.exec(mount)[1]; mountObjects.push({ mountPath, imagePath }); } catch (err) { // Ignore } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } d('identified active mounts', mountObjects); return mountObjects; }); return function getMountedImages() { return _ref.apply(this, arguments); }; })(); const mountImage = exports.mountImage = (() => { var _ref2 = (0, _bluebird.coroutine)(function* (filePath) { d('mounting image:', filePath); const output = yield (0, _crossSpawnPromise2.default)('hdiutil', ['attach', '-noautoopen', '-nobrowse', '-noverify', filePath]); const mountPath = /\/Volumes\/(.+)\n/g.exec(output.toString())[1]; d('mounted at:', mountPath); return { mountPath, imagePath: filePath }; }); return function mountImage(_x) { return _ref2.apply(this, arguments); }; })(); const unmountImage = exports.unmountImage = (() => { var _ref3 = (0, _bluebird.coroutine)(function* (mount) { d('unmounting current mount:', mount); yield (0, _crossSpawnPromise2.default)('hdiutil', ['unmount', '-force', `/Volumes/${mount.mountPath}`]); }); return function unmountImage(_x2) { return _ref3.apply(this, arguments); }; })(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWwvaGRpdXRpbC5qcyJdLCJuYW1lcyI6WyJkIiwiZ2V0TW91bnRlZEltYWdlcyIsIm91dHB1dCIsIm1vdW50cyIsInRvU3RyaW5nIiwic3BsaXQiLCJzaGlmdCIsIm1vdW50T2JqZWN0cyIsIm1vdW50IiwibW91bnRQYXRoIiwiZXhlYyIsImltYWdlUGF0aCIsInB1c2giLCJlcnIiLCJtb3VudEltYWdlIiwiZmlsZVBhdGgiLCJ1bm1vdW50SW1hZ2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7OztBQUNBOzs7Ozs7QUFFQSxNQUFNQSxJQUFJLHFCQUFNLHdCQUFOLENBQVY7O0FBRU8sTUFBTUM7QUFBQSxzQ0FBbUIsYUFBWTtBQUMxQyxVQUFNQyxTQUFTLE1BQU0saUNBQWEsU0FBYixFQUF3QixDQUFDLE1BQUQsQ0FBeEIsQ0FBckI7QUFDQSxVQUFNQyxTQUFTRCxPQUFPRSxRQUFQLEdBQWtCQyxLQUFsQixDQUF3QixTQUF4QixDQUFmO0FBQ0FGLFdBQU9HLEtBQVA7O0FBRUEsVUFBTUMsZUFBZSxFQUFyQjs7QUFMMEM7QUFBQTtBQUFBOztBQUFBO0FBTzFDLHNEQUFvQkosTUFBcEIsNEdBQTRCO0FBQUEsY0FBakJLLEtBQWlCOztBQUMxQixZQUFJO0FBQ0YsZ0JBQU1DLFlBQVkscUJBQXFCQyxJQUFyQixDQUEwQkYsS0FBMUIsRUFBaUMsQ0FBakMsQ0FBbEI7QUFDQSxnQkFBTUcsWUFBWSx5QkFBeUJELElBQXpCLENBQThCRixLQUE5QixFQUFxQyxDQUFyQyxDQUFsQjtBQUNBRCx1QkFBYUssSUFBYixDQUFrQixFQUFFSCxTQUFGLEVBQWFFLFNBQWIsRUFBbEI7QUFDRCxTQUpELENBSUUsT0FBT0UsR0FBUCxFQUFZO0FBQ1o7QUFDRDtBQUNGO0FBZnlDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBaUIxQ2IsTUFBRSwwQkFBRixFQUE4Qk8sWUFBOUI7QUFDQSxXQUFPQSxZQUFQO0FBQ0QsR0FuQlk7O0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFBTjs7QUFxQkEsTUFBTU87QUFBQSx1Q0FBYSxXQUFPQyxRQUFQLEVBQW9CO0FBQzVDZixNQUFFLGlCQUFGLEVBQXFCZSxRQUFyQjtBQUNBLFVBQU1iLFNBQVMsTUFBTSxpQ0FBYSxTQUFiLEVBQXdCLENBQUMsUUFBRCxFQUFXLGFBQVgsRUFBMEIsV0FBMUIsRUFBdUMsV0FBdkMsRUFBb0RhLFFBQXBELENBQXhCLENBQXJCO0FBQ0EsVUFBTU4sWUFBWSxxQkFBcUJDLElBQXJCLENBQTBCUixPQUFPRSxRQUFQLEVBQTFCLEVBQTZDLENBQTdDLENBQWxCO0FBQ0FKLE1BQUUsYUFBRixFQUFpQlMsU0FBakI7O0FBRUEsV0FBTztBQUNMQSxlQURLO0FBRUxFLGlCQUFXSTtBQUZOLEtBQVA7QUFJRCxHQVZZOztBQUFBO0FBQUE7QUFBQTtBQUFBLElBQU47O0FBWUEsTUFBTUM7QUFBQSx1Q0FBZSxXQUFPUixLQUFQLEVBQWlCO0FBQzNDUixNQUFFLDJCQUFGLEVBQStCUSxLQUEvQjtBQUNBLFVBQU0saUNBQWEsU0FBYixFQUF3QixDQUFDLFNBQUQsRUFBWSxRQUFaLEVBQXVCLFlBQVdBLE1BQU1DLFNBQVUsRUFBbEQsQ0FBeEIsQ0FBTjtBQUNELEdBSFk7O0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFBTiIsImZpbGUiOiJ1dGlsL2hkaXV0aWwuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3Bhd25Qcm9taXNlIGZyb20gJ2Nyb3NzLXNwYXduLXByb21pc2UnO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcblxuY29uc3QgZCA9IGRlYnVnKCdlbGVjdHJvbi1mb3JnZTpoZGl1dGlsJyk7XG5cbmV4cG9ydCBjb25zdCBnZXRNb3VudGVkSW1hZ2VzID0gYXN5bmMgKCkgPT4ge1xuICBjb25zdCBvdXRwdXQgPSBhd2FpdCBzcGF3blByb21pc2UoJ2hkaXV0aWwnLCBbJ2luZm8nXSk7XG4gIGNvbnN0IG1vdW50cyA9IG91dHB1dC50b1N0cmluZygpLnNwbGl0KC89PT09XFxuL2cpO1xuICBtb3VudHMuc2hpZnQoKTtcblxuICBjb25zdCBtb3VudE9iamVjdHMgPSBbXTtcblxuICBmb3IgKGNvbnN0IG1vdW50IG9mIG1vdW50cykge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBtb3VudFBhdGggPSAvXFwvVm9sdW1lc1xcLyguKylcXG4vZy5leGVjKG1vdW50KVsxXTtcbiAgICAgIGNvbnN0IGltYWdlUGF0aCA9IC9pbWFnZS1wYXRoICs6ICsoLispXFxuL2cuZXhlYyhtb3VudClbMV07XG4gICAgICBtb3VudE9iamVjdHMucHVzaCh7IG1vdW50UGF0aCwgaW1hZ2VQYXRoIH0pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgLy8gSWdub3JlXG4gICAgfVxuICB9XG5cbiAgZCgnaWRlbnRpZmllZCBhY3RpdmUgbW91bnRzJywgbW91bnRPYmplY3RzKTtcbiAgcmV0dXJuIG1vdW50T2JqZWN0cztcbn07XG5cbmV4cG9ydCBjb25zdCBtb3VudEltYWdlID0gYXN5bmMgKGZpbGVQYXRoKSA9PiB7XG4gIGQoJ21vdW50aW5nIGltYWdlOicsIGZpbGVQYXRoKTtcbiAgY29uc3Qgb3V0cHV0ID0gYXdhaXQgc3Bhd25Qcm9taXNlKCdoZGl1dGlsJywgWydhdHRhY2gnLCAnLW5vYXV0b29wZW4nLCAnLW5vYnJvd3NlJywgJy1ub3ZlcmlmeScsIGZpbGVQYXRoXSk7XG4gIGNvbnN0IG1vdW50UGF0aCA9IC9cXC9Wb2x1bWVzXFwvKC4rKVxcbi9nLmV4ZWMob3V0cHV0LnRvU3RyaW5nKCkpWzFdO1xuICBkKCdtb3VudGVkIGF0OicsIG1vdW50UGF0aCk7XG5cbiAgcmV0dXJuIHtcbiAgICBtb3VudFBhdGgsXG4gICAgaW1hZ2VQYXRoOiBmaWxlUGF0aCxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB1bm1vdW50SW1hZ2UgPSBhc3luYyAobW91bnQpID0+IHtcbiAgZCgndW5tb3VudGluZyBjdXJyZW50IG1vdW50OicsIG1vdW50KTtcbiAgYXdhaXQgc3Bhd25Qcm9taXNlKCdoZGl1dGlsJywgWyd1bm1vdW50JywgJy1mb3JjZScsIGAvVm9sdW1lcy8ke21vdW50Lm1vdW50UGF0aH1gXSk7XG59O1xuIl19