better-npm-init
Version:
A better version of npm init, with templates and more. Usage: better-npm-init <template> [--yarn] [--install] [--git] [--yes] [--help]
64 lines (48 loc) • 6.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.unmountImage = exports.mountImage = exports.getMountedImages = void 0;
require("source-map-support/register");
var _crossSpawnPromise = require("@malept/cross-spawn-promise");
var _debug = _interopRequireDefault(require("debug"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const d = (0, _debug.default)('electron-forge:hdiutil');
const getMountedImages = async () => {
const output = await (0, _crossSpawnPromise.spawn)('hdiutil', ['info']);
const mounts = output.toString().split(/====\n/g);
mounts.shift();
const mountObjects = [];
for (const mount of mounts) {
try {
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
const mountPath = /\/Volumes\/(.+)\n/g.exec(mount)[1]; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
const imagePath = /image-path +: +(.+)\n/g.exec(mount)[1];
mountObjects.push({
mountPath,
imagePath
});
} catch {// Ignore
}
}
d('identified active mounts', mountObjects);
return mountObjects;
};
exports.getMountedImages = getMountedImages;
const mountImage = async filePath => {
d('mounting image:', filePath);
const output = await (0, _crossSpawnPromise.spawn)('hdiutil', ['attach', '-noautoopen', '-nobrowse', '-noverify', filePath]); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
const mountPath = /\/Volumes\/(.+)\n/g.exec(output.toString())[1];
d('mounted at:', mountPath);
return {
mountPath,
imagePath: filePath
};
};
exports.mountImage = mountImage;
const unmountImage = async mount => {
d('unmounting current mount:', mount);
await (0, _crossSpawnPromise.spawn)('hdiutil', ['unmount', '-force', `/Volumes/${mount.mountPath}`]);
};
exports.unmountImage = unmountImage;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2hkaXV0aWwudHMiXSwibmFtZXMiOlsiZCIsImdldE1vdW50ZWRJbWFnZXMiLCJvdXRwdXQiLCJtb3VudHMiLCJ0b1N0cmluZyIsInNwbGl0Iiwic2hpZnQiLCJtb3VudE9iamVjdHMiLCJtb3VudCIsIm1vdW50UGF0aCIsImV4ZWMiLCJpbWFnZVBhdGgiLCJwdXNoIiwibW91bnRJbWFnZSIsImZpbGVQYXRoIiwidW5tb3VudEltYWdlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFDQTs7OztBQUVBLE1BQU1BLENBQUMsR0FBRyxvQkFBTSx3QkFBTixDQUFWOztBQU9PLE1BQU1DLGdCQUFnQixHQUFHLFlBQThCO0FBQzVELFFBQU1DLE1BQU0sR0FBRyxNQUFNLDhCQUFNLFNBQU4sRUFBaUIsQ0FBQyxNQUFELENBQWpCLENBQXJCO0FBQ0EsUUFBTUMsTUFBTSxHQUFHRCxNQUFNLENBQUNFLFFBQVAsR0FBa0JDLEtBQWxCLENBQXdCLFNBQXhCLENBQWY7QUFDQUYsRUFBQUEsTUFBTSxDQUFDRyxLQUFQO0FBRUEsUUFBTUMsWUFBWSxHQUFHLEVBQXJCOztBQUVBLE9BQUssTUFBTUMsS0FBWCxJQUFvQkwsTUFBcEIsRUFBNEI7QUFDMUIsUUFBSTtBQUNGO0FBQ0EsWUFBTU0sU0FBUyxHQUFHLHFCQUFxQkMsSUFBckIsQ0FBMEJGLEtBQTFCLEVBQWtDLENBQWxDLENBQWxCLENBRkUsQ0FHRjs7QUFDQSxZQUFNRyxTQUFTLEdBQUcseUJBQXlCRCxJQUF6QixDQUE4QkYsS0FBOUIsRUFBc0MsQ0FBdEMsQ0FBbEI7QUFDQUQsTUFBQUEsWUFBWSxDQUFDSyxJQUFiLENBQWtCO0FBQUVILFFBQUFBLFNBQUY7QUFBYUUsUUFBQUE7QUFBYixPQUFsQjtBQUNELEtBTkQsQ0FNRSxNQUFNLENBQ047QUFDRDtBQUNGOztBQUVEWCxFQUFBQSxDQUFDLENBQUMsMEJBQUQsRUFBNkJPLFlBQTdCLENBQUQ7QUFDQSxTQUFPQSxZQUFQO0FBQ0QsQ0FyQk07Ozs7QUF1QkEsTUFBTU0sVUFBVSxHQUFHLE1BQU9DLFFBQVAsSUFBNEM7QUFDcEVkLEVBQUFBLENBQUMsQ0FBQyxpQkFBRCxFQUFvQmMsUUFBcEIsQ0FBRDtBQUNBLFFBQU1aLE1BQU0sR0FBRyxNQUFNLDhCQUFNLFNBQU4sRUFBaUIsQ0FBQyxRQUFELEVBQVcsYUFBWCxFQUEwQixXQUExQixFQUF1QyxXQUF2QyxFQUFvRFksUUFBcEQsQ0FBakIsQ0FBckIsQ0FGb0UsQ0FHcEU7O0FBQ0EsUUFBTUwsU0FBUyxHQUFHLHFCQUFxQkMsSUFBckIsQ0FBMEJSLE1BQU0sQ0FBQ0UsUUFBUCxFQUExQixFQUE4QyxDQUE5QyxDQUFsQjtBQUNBSixFQUFBQSxDQUFDLENBQUMsYUFBRCxFQUFnQlMsU0FBaEIsQ0FBRDtBQUVBLFNBQU87QUFDTEEsSUFBQUEsU0FESztBQUVMRSxJQUFBQSxTQUFTLEVBQUVHO0FBRk4sR0FBUDtBQUlELENBWE07Ozs7QUFhQSxNQUFNQyxZQUFZLEdBQUcsTUFBT1AsS0FBUCxJQUF1QztBQUNqRVIsRUFBQUEsQ0FBQyxDQUFDLDJCQUFELEVBQThCUSxLQUE5QixDQUFEO0FBQ0EsUUFBTSw4QkFBTSxTQUFOLEVBQWlCLENBQUMsU0FBRCxFQUFZLFFBQVosRUFBdUIsWUFBV0EsS0FBSyxDQUFDQyxTQUFVLEVBQWxELENBQWpCLENBQU47QUFDRCxDQUhNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3Bhd24gfSBmcm9tICdAbWFsZXB0L2Nyb3NzLXNwYXduLXByb21pc2UnO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcblxuY29uc3QgZCA9IGRlYnVnKCdlbGVjdHJvbi1mb3JnZTpoZGl1dGlsJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW91bnQge1xuICBtb3VudFBhdGg6IHN0cmluZztcbiAgaW1hZ2VQYXRoOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRNb3VudGVkSW1hZ2VzID0gYXN5bmMgKCk6IFByb21pc2U8TW91bnRbXT4gPT4ge1xuICBjb25zdCBvdXRwdXQgPSBhd2FpdCBzcGF3bignaGRpdXRpbCcsIFsnaW5mbyddKTtcbiAgY29uc3QgbW91bnRzID0gb3V0cHV0LnRvU3RyaW5nKCkuc3BsaXQoLz09PT1cXG4vZyk7XG4gIG1vdW50cy5zaGlmdCgpO1xuXG4gIGNvbnN0IG1vdW50T2JqZWN0cyA9IFtdO1xuXG4gIGZvciAoY29uc3QgbW91bnQgb2YgbW91bnRzKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgICBjb25zdCBtb3VudFBhdGggPSAvXFwvVm9sdW1lc1xcLyguKylcXG4vZy5leGVjKG1vdW50KSFbMV07XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgICAgY29uc3QgaW1hZ2VQYXRoID0gL2ltYWdlLXBhdGggKzogKyguKylcXG4vZy5leGVjKG1vdW50KSFbMV07XG4gICAgICBtb3VudE9iamVjdHMucHVzaCh7IG1vdW50UGF0aCwgaW1hZ2VQYXRoIH0pO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gSWdub3JlXG4gICAgfVxuICB9XG5cbiAgZCgnaWRlbnRpZmllZCBhY3RpdmUgbW91bnRzJywgbW91bnRPYmplY3RzKTtcbiAgcmV0dXJuIG1vdW50T2JqZWN0cztcbn07XG5cbmV4cG9ydCBjb25zdCBtb3VudEltYWdlID0gYXN5bmMgKGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPE1vdW50PiA9PiB7XG4gIGQoJ21vdW50aW5nIGltYWdlOicsIGZpbGVQYXRoKTtcbiAgY29uc3Qgb3V0cHV0ID0gYXdhaXQgc3Bhd24oJ2hkaXV0aWwnLCBbJ2F0dGFjaCcsICctbm9hdXRvb3BlbicsICctbm9icm93c2UnLCAnLW5vdmVyaWZ5JywgZmlsZVBhdGhdKTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgY29uc3QgbW91bnRQYXRoID0gL1xcL1ZvbHVtZXNcXC8oLispXFxuL2cuZXhlYyhvdXRwdXQudG9TdHJpbmcoKSkhWzFdO1xuICBkKCdtb3VudGVkIGF0OicsIG1vdW50UGF0aCk7XG5cbiAgcmV0dXJuIHtcbiAgICBtb3VudFBhdGgsXG4gICAgaW1hZ2VQYXRoOiBmaWxlUGF0aCxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB1bm1vdW50SW1hZ2UgPSBhc3luYyAobW91bnQ6IE1vdW50KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIGQoJ3VubW91bnRpbmcgY3VycmVudCBtb3VudDonLCBtb3VudCk7XG4gIGF3YWl0IHNwYXduKCdoZGl1dGlsJywgWyd1bm1vdW50JywgJy1mb3JjZScsIGAvVm9sdW1lcy8ke21vdW50Lm1vdW50UGF0aH1gXSk7XG59O1xuIl19