UNPKG

gnumake

Version:
62 lines (47 loc) 5.48 kB
"use strict"; 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==