gnumake
Version:
cross platform gnu make
62 lines (47 loc) • 5.48 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
require("core-js/modules/es.array.index-of");
require("core-js/modules/es.string.split");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = where;
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _execa = _interopRequireDefault(require("execa"));
function where(_x, _x2) {
return _where.apply(this, arguments);
}
function _where() {
_where = (0, _asyncToGenerator2.default)(function* (program, unixCommand, PATH = process.env.PATH) {
if (!unixCommand) {
var _process$env$PATH;
const splitChar = process.platform === 'win32' ? ';' : ':';
process.env.PATH = (_process$env$PATH = process.env.PATH) === null || _process$env$PATH === void 0 ? void 0 : _process$env$PATH.split(splitChar).reduce((envPaths, envPath) => {
if (envPath.indexOf('node_modules/.bin') > -1) return envPaths;
envPaths.push(envPath);
return envPaths;
}, []).join(splitChar);
}
const command = process.platform === 'win32' ? 'whereis' : unixCommand || 'where';
let result = null;
try {
const ps = yield (0, _execa.default)(command, [program], {
stdio: 'pipe'
});
if (ps.exitCode === 0) result = ps.stdout;
} catch (err) {
if (process.platform !== 'win32' && !unixCommand) {
return where(program, 'which', PATH);
}
}
process.env.PATH = PATH;
if (typeof result === 'string') {
var _result;
result = result.split(' ').pop() || null;
if (!((_result = result) === null || _result === void 0 ? void 0 : _result.length)) result = null;
}
return result;
});
return _where.apply(this, arguments);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy93aGVyZS50cyJdLCJuYW1lcyI6WyJ3aGVyZSIsInByb2dyYW0iLCJ1bml4Q29tbWFuZCIsIlBBVEgiLCJwcm9jZXNzIiwiZW52Iiwic3BsaXRDaGFyIiwicGxhdGZvcm0iLCJzcGxpdCIsInJlZHVjZSIsImVudlBhdGhzIiwiZW52UGF0aCIsImluZGV4T2YiLCJwdXNoIiwiam9pbiIsImNvbW1hbmQiLCJyZXN1bHQiLCJwcyIsInN0ZGlvIiwiZXhpdENvZGUiLCJzdGRvdXQiLCJlcnIiLCJwb3AiLCJsZW5ndGgiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztTQUU4QkEsSzs7Ozs7MkNBQWYsV0FDYkMsT0FEYSxFQUViQyxXQUZhLEVBR2JDLElBQUksR0FBR0MsT0FBTyxDQUFDQyxHQUFSLENBQVlGLElBSE4sRUFJVztBQUN4QixRQUFJLENBQUNELFdBQUwsRUFBa0I7QUFBQTs7QUFDaEIsWUFBTUksU0FBUyxHQUFHRixPQUFPLENBQUNHLFFBQVIsS0FBcUIsT0FBckIsR0FBK0IsR0FBL0IsR0FBcUMsR0FBdkQ7QUFDQUgsTUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVlGLElBQVosd0JBQW1CQyxPQUFPLENBQUNDLEdBQVIsQ0FBWUYsSUFBL0Isc0RBQW1CLGtCQUFrQkssS0FBbEIsQ0FBd0JGLFNBQXhCLEVBQ2hCRyxNQURnQixDQUNULENBQUNDLFFBQUQsRUFBcUJDLE9BQXJCLEtBQXlDO0FBQy9DLFlBQUlBLE9BQU8sQ0FBQ0MsT0FBUixDQUFnQixtQkFBaEIsSUFBdUMsQ0FBQyxDQUE1QyxFQUErQyxPQUFPRixRQUFQO0FBQy9DQSxRQUFBQSxRQUFRLENBQUNHLElBQVQsQ0FBY0YsT0FBZDtBQUNBLGVBQU9ELFFBQVA7QUFDRCxPQUxnQixFQUtkLEVBTGMsRUFNaEJJLElBTmdCLENBTVhSLFNBTlcsQ0FBbkI7QUFPRDs7QUFDRCxVQUFNUyxPQUFPLEdBQ1hYLE9BQU8sQ0FBQ0csUUFBUixLQUFxQixPQUFyQixHQUErQixTQUEvQixHQUEyQ0wsV0FBVyxJQUFJLE9BRDVEO0FBRUEsUUFBSWMsTUFBTSxHQUFHLElBQWI7O0FBQ0EsUUFBSTtBQUNGLFlBQU1DLEVBQUUsU0FBUyxvQkFBTUYsT0FBTixFQUFlLENBQUNkLE9BQUQsQ0FBZixFQUEwQjtBQUFFaUIsUUFBQUEsS0FBSyxFQUFFO0FBQVQsT0FBMUIsQ0FBakI7QUFDQSxVQUFJRCxFQUFFLENBQUNFLFFBQUgsS0FBZ0IsQ0FBcEIsRUFBdUJILE1BQU0sR0FBR0MsRUFBRSxDQUFDRyxNQUFaO0FBQ3hCLEtBSEQsQ0FHRSxPQUFPQyxHQUFQLEVBQVk7QUFDWixVQUFJakIsT0FBTyxDQUFDRyxRQUFSLEtBQXFCLE9BQXJCLElBQWdDLENBQUNMLFdBQXJDLEVBQWtEO0FBQ2hELGVBQU9GLEtBQUssQ0FBQ0MsT0FBRCxFQUFVLE9BQVYsRUFBbUJFLElBQW5CLENBQVo7QUFDRDtBQUNGOztBQUNEQyxJQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWUYsSUFBWixHQUFtQkEsSUFBbkI7O0FBQ0EsUUFBSSxPQUFPYSxNQUFQLEtBQWtCLFFBQXRCLEVBQWdDO0FBQUE7O0FBQzlCQSxNQUFBQSxNQUFNLEdBQUdBLE1BQU0sQ0FBQ1IsS0FBUCxDQUFhLEdBQWIsRUFBa0JjLEdBQWxCLE1BQTJCLElBQXBDO0FBQ0EsVUFBSSxhQUFDTixNQUFELDRDQUFDLFFBQVFPLE1BQVQsQ0FBSixFQUFxQlAsTUFBTSxHQUFHLElBQVQ7QUFDdEI7O0FBQ0QsV0FBT0EsTUFBUDtBQUNELEciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZXhlY2EgZnJvbSAnZXhlY2EnO1xuXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiB3aGVyZShcbiAgcHJvZ3JhbTogc3RyaW5nLFxuICB1bml4Q29tbWFuZD86IHN0cmluZyxcbiAgUEFUSCA9IHByb2Nlc3MuZW52LlBBVEhcbik6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xuICBpZiAoIXVuaXhDb21tYW5kKSB7XG4gICAgY29uc3Qgc3BsaXRDaGFyID0gcHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJyA/ICc7JyA6ICc6JztcbiAgICBwcm9jZXNzLmVudi5QQVRIID0gcHJvY2Vzcy5lbnYuUEFUSD8uc3BsaXQoc3BsaXRDaGFyKVxuICAgICAgLnJlZHVjZSgoZW52UGF0aHM6IHN0cmluZ1tdLCBlbnZQYXRoOiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKGVudlBhdGguaW5kZXhPZignbm9kZV9tb2R1bGVzLy5iaW4nKSA+IC0xKSByZXR1cm4gZW52UGF0aHM7XG4gICAgICAgIGVudlBhdGhzLnB1c2goZW52UGF0aCk7XG4gICAgICAgIHJldHVybiBlbnZQYXRocztcbiAgICAgIH0sIFtdKVxuICAgICAgLmpvaW4oc3BsaXRDaGFyKTtcbiAgfVxuICBjb25zdCBjb21tYW5kID1cbiAgICBwcm9jZXNzLnBsYXRmb3JtID09PSAnd2luMzInID8gJ3doZXJlaXMnIDogdW5peENvbW1hbmQgfHwgJ3doZXJlJztcbiAgbGV0IHJlc3VsdCA9IG51bGw7XG4gIHRyeSB7XG4gICAgY29uc3QgcHMgPSBhd2FpdCBleGVjYShjb21tYW5kLCBbcHJvZ3JhbV0sIHsgc3RkaW86ICdwaXBlJyB9KTtcbiAgICBpZiAocHMuZXhpdENvZGUgPT09IDApIHJlc3VsdCA9IHBzLnN0ZG91dDtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgaWYgKHByb2Nlc3MucGxhdGZvcm0gIT09ICd3aW4zMicgJiYgIXVuaXhDb21tYW5kKSB7XG4gICAgICByZXR1cm4gd2hlcmUocHJvZ3JhbSwgJ3doaWNoJywgUEFUSCk7XG4gICAgfVxuICB9XG4gIHByb2Nlc3MuZW52LlBBVEggPSBQQVRIO1xuICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ3N0cmluZycpIHtcbiAgICByZXN1bHQgPSByZXN1bHQuc3BsaXQoJyAnKS5wb3AoKSB8fCBudWxsO1xuICAgIGlmICghcmVzdWx0Py5sZW5ndGgpIHJlc3VsdCA9IG51bGw7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==