electron-forge
Version:
A complete tool for building modern Electron applications
65 lines (47 loc) • 3.43 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;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWwvbGludXgtaW5zdGFsbGVyLmpzIl0sIm5hbWVzIjpbIndoaWNoIiwidHlwZSIsInByb2ciLCJwcm9taXNlIiwic3RhdHVzIiwiRXJyb3IiLCJzdWRvIiwiYXJncyIsImV4ZWMiLCJuYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7Ozs7QUFDQTs7Ozs7O0FBRUEsSUFBTUE7QUFBQSxpRUFBUSxpQkFBT0MsSUFBUCxFQUFhQyxJQUFiLEVBQW1CQyxPQUFuQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsa0JBQ1IsOEJBQVUsT0FBVixFQUFtQixDQUFDRCxJQUFELENBQW5CLEVBQTJCRSxNQUEzQixLQUFzQyxDQUQ5QjtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBLG1CQUVKRCxPQUZJOztBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBLGtCQUlKLElBQUlFLEtBQUosQ0FBYUgsSUFBYixnQ0FBNENELElBQTVDLGVBSkk7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsR0FBUjs7QUFBQTtBQUFBO0FBQUE7QUFBQSxHQUFOOztBQVFPLElBQU1LLHNCQUFPLFNBQVBBLElBQU8sQ0FBQ0wsSUFBRCxFQUFPQyxJQUFQLEVBQWFLLElBQWI7QUFBQSxTQUNsQlAsTUFBTUMsSUFBTixFQUFZQyxJQUFaLEVBQWtCLG9CQUFLLHFCQUFXTSxJQUFoQixFQUF5Qk4sSUFBekIsU0FBaUNLLElBQWpDLEVBQXlDLEVBQUVFLE1BQU0sZ0JBQVIsRUFBekMsQ0FBbEIsQ0FEa0I7QUFBQSxDQUFiOztrQkFHUVQsSyIsImZpbGUiOiJ1dGlsL2xpbnV4LWluc3RhbGxlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNwYXduU3luYyB9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IHBpZnkgZnJvbSAncGlmeSc7XG5pbXBvcnQgc3Vkb1Byb21wdCBmcm9tICdzdWRvLXByb21wdCc7XG5cbmNvbnN0IHdoaWNoID0gYXN5bmMgKHR5cGUsIHByb2csIHByb21pc2UpID0+IHtcbiAgaWYgKHNwYXduU3luYygnd2hpY2gnLCBbcHJvZ10pLnN0YXR1cyA9PT0gMCkge1xuICAgIGF3YWl0IHByb21pc2U7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGAke3Byb2d9IGlzIHJlcXVpcmVkIHRvIGluc3RhbGwgJHt0eXBlfSBwYWNrYWdlc2ApO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3Qgc3VkbyA9ICh0eXBlLCBwcm9nLCBhcmdzKSA9PlxuICB3aGljaCh0eXBlLCBwcm9nLCBwaWZ5KHN1ZG9Qcm9tcHQuZXhlYykoYCR7cHJvZ30gJHthcmdzfWAsIHsgbmFtZTogJ0VsZWN0cm9uIEZvcmdlJyB9KSk7XG5cbmV4cG9ydCBkZWZhdWx0IHdoaWNoO1xuIl19