electron-forge
Version:
A complete tool for building modern Electron applications
64 lines (46 loc) • 1.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.sudo = undefined;
var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
var _bluebird = require('bluebird');
var _child_process = require('child_process');
var _pify = require('pify');
var _pify2 = _interopRequireDefault(_pify);
var _sudoPrompt = require('sudo-prompt');
var _sudoPrompt2 = _interopRequireDefault(_sudoPrompt);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var which = function () {
var _ref = (0, _bluebird.coroutine)(_regenerator2.default.mark(function _callee(type, prog, promise) {
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
if (!((0, _child_process.spawnSync)('which', [prog]).status === 0)) {
_context.next = 5;
break;
}
_context.next = 3;
return promise;
case 3:
_context.next = 6;
break;
case 5:
throw new Error(prog + ' is required to install ' + type + ' packages');
case 6:
case 'end':
return _context.stop();
}
}
}, _callee, undefined);
}));
return function which(_x, _x2, _x3) {
return _ref.apply(this, arguments);
};
}();
var sudo = exports.sudo = function sudo(type, prog, args) {
return which(type, prog, (0, _pify2.default)(_sudoPrompt2.default.exec)(prog + ' ' + args, { name: 'Electron Forge' }));
};
exports.default = which;