UNPKG

gnumake

Version:
97 lines (75 loc) 8.04 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); require("core-js/modules/es.promise"); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _fs = _interopRequireDefault(require("fs")); var _https = _interopRequireDefault(require("https")); var _path = _interopRequireDefault(require("path")); var _tar = _interopRequireDefault(require("tar")); var _where = _interopRequireDefault(require("./where")); const options = { version: '3.75' }; function downloadStream(_x) { return _downloadStream.apply(this, arguments); } function _downloadStream() { _downloadStream = (0, _asyncToGenerator2.default)(function* (url) { return new Promise((resolve, reject) => { _https.default.request(url, res => { if (res.statusCode === 200) { return resolve(res); } if ((res.statusCode === 301 || res.statusCode === 302) && res.headers.location) { return resolve(downloadStream(res.headers.location)); } return reject(res.statusCode); }).on('error', err => { reject(err); }).end(); }); }); return _downloadStream.apply(this, arguments); } function download(_x2, _x3) { return _download.apply(this, arguments); } function _download() { _download = (0, _asyncToGenerator2.default)(function* (url, outputPath) { const stream = yield downloadStream(url); yield new Promise((resolve, reject) => { try { const file = _fs.default.createWriteStream(outputPath); stream.pipe(file); return file.on('finish', () => { file.close(); return resolve(); }); } catch (err) { return reject(err); } }); }); return _download.apply(this, arguments); } function install() { return _install.apply(this, arguments); } function _install() { _install = (0, _asyncToGenerator2.default)(function* () { if (yield (0, _where.default)('make')) return; const binPath = _path.default.resolve(__dirname, '../bin'); const tarPath = _path.default.resolve(binPath, 'make.tar.gz'); const url = `https://github.com/codejamninja/portable-make/releases/download/${options.version}/make-${process.platform}-${options.version}.tar.gz`; process.stdout.write(`downloading -> ${url}\n`); yield download(url, tarPath); process.stdout.write(`extracting -> ${tarPath}\n`); yield _tar.default.x({ C: binPath, file: tarPath }); }); return _install.apply(this, arguments); } install().catch(console.error); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbnN0YWxsLnRzIl0sIm5hbWVzIjpbIm9wdGlvbnMiLCJ2ZXJzaW9uIiwiZG93bmxvYWRTdHJlYW0iLCJ1cmwiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImh0dHBzIiwicmVxdWVzdCIsInJlcyIsInN0YXR1c0NvZGUiLCJoZWFkZXJzIiwibG9jYXRpb24iLCJvbiIsImVyciIsImVuZCIsImRvd25sb2FkIiwib3V0cHV0UGF0aCIsInN0cmVhbSIsImZpbGUiLCJmcyIsImNyZWF0ZVdyaXRlU3RyZWFtIiwicGlwZSIsImNsb3NlIiwiaW5zdGFsbCIsImJpblBhdGgiLCJwYXRoIiwiX19kaXJuYW1lIiwidGFyUGF0aCIsInByb2Nlc3MiLCJwbGF0Zm9ybSIsInN0ZG91dCIsIndyaXRlIiwidGFyIiwieCIsIkMiLCJjYXRjaCIsImNvbnNvbGUiLCJlcnJvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFFQSxNQUFNQSxPQUFPLEdBQUc7QUFDZEMsRUFBQUEsT0FBTyxFQUFFO0FBREssQ0FBaEI7O1NBSWVDLGM7Ozs7O29EQUFmLFdBQThCQyxHQUE5QixFQUFxRTtBQUNuRSxXQUFPLElBQUlDLE9BQUosQ0FBWSxDQUFDQyxPQUFELEVBQVVDLE1BQVYsS0FBcUI7QUFDdENDLHFCQUNHQyxPQURILENBQ1dMLEdBRFgsRUFDaUJNLEdBQUQsSUFBMEI7QUFDdEMsWUFBSUEsR0FBRyxDQUFDQyxVQUFKLEtBQW1CLEdBQXZCLEVBQTRCO0FBQzFCLGlCQUFPTCxPQUFPLENBQUNJLEdBQUQsQ0FBZDtBQUNEOztBQUNELFlBQ0UsQ0FBQ0EsR0FBRyxDQUFDQyxVQUFKLEtBQW1CLEdBQW5CLElBQTBCRCxHQUFHLENBQUNDLFVBQUosS0FBbUIsR0FBOUMsS0FDQUQsR0FBRyxDQUFDRSxPQUFKLENBQVlDLFFBRmQsRUFHRTtBQUNBLGlCQUFPUCxPQUFPLENBQUNILGNBQWMsQ0FBQ08sR0FBRyxDQUFDRSxPQUFKLENBQVlDLFFBQWIsQ0FBZixDQUFkO0FBQ0Q7O0FBQ0QsZUFBT04sTUFBTSxDQUFDRyxHQUFHLENBQUNDLFVBQUwsQ0FBYjtBQUNELE9BWkgsRUFhR0csRUFiSCxDQWFNLE9BYk4sRUFhZ0JDLEdBQUQsSUFBZ0I7QUFDM0JSLFFBQUFBLE1BQU0sQ0FBQ1EsR0FBRCxDQUFOO0FBQ0QsT0FmSCxFQWdCR0MsR0FoQkg7QUFpQkQsS0FsQk0sQ0FBUDtBQW1CRCxHOzs7O1NBRWNDLFE7Ozs7OzhDQUFmLFdBQXdCYixHQUF4QixFQUFxQ2MsVUFBckMsRUFBd0U7QUFDdEUsVUFBTUMsTUFBTSxTQUFTaEIsY0FBYyxDQUFDQyxHQUFELENBQW5DO0FBQ0EsVUFBTSxJQUFJQyxPQUFKLENBQVksQ0FBQ0MsT0FBRCxFQUFVQyxNQUFWLEtBQXFCO0FBQ3JDLFVBQUk7QUFDRixjQUFNYSxJQUFJLEdBQUdDLFlBQUdDLGlCQUFILENBQXFCSixVQUFyQixDQUFiOztBQUNBQyxRQUFBQSxNQUFNLENBQUNJLElBQVAsQ0FBWUgsSUFBWjtBQUNBLGVBQU9BLElBQUksQ0FBQ04sRUFBTCxDQUFRLFFBQVIsRUFBa0IsTUFBTTtBQUM3Qk0sVUFBQUEsSUFBSSxDQUFDSSxLQUFMO0FBQ0EsaUJBQU9sQixPQUFPLEVBQWQ7QUFDRCxTQUhNLENBQVA7QUFJRCxPQVBELENBT0UsT0FBT1MsR0FBUCxFQUFZO0FBQ1osZUFBT1IsTUFBTSxDQUFDUSxHQUFELENBQWI7QUFDRDtBQUNGLEtBWEssQ0FBTjtBQVlELEc7Ozs7U0FFY1UsTzs7Ozs7NkNBQWYsYUFBeUI7QUFDdkIsY0FBVSxvQkFBTSxNQUFOLENBQVYsRUFBeUI7O0FBQ3pCLFVBQU1DLE9BQU8sR0FBR0MsY0FBS3JCLE9BQUwsQ0FBYXNCLFNBQWIsRUFBd0IsUUFBeEIsQ0FBaEI7O0FBQ0EsVUFBTUMsT0FBTyxHQUFHRixjQUFLckIsT0FBTCxDQUFhb0IsT0FBYixFQUFzQixhQUF0QixDQUFoQjs7QUFDQSxVQUFNdEIsR0FBRyxHQUFJLG1FQUFrRUgsT0FBTyxDQUFDQyxPQUFRLFNBQVE0QixPQUFPLENBQUNDLFFBQVMsSUFBRzlCLE9BQU8sQ0FBQ0MsT0FBUSxTQUEzSTtBQUNBNEIsSUFBQUEsT0FBTyxDQUFDRSxNQUFSLENBQWVDLEtBQWYsQ0FBc0Isa0JBQWlCN0IsR0FBSSxJQUEzQztBQUNBLFVBQU1hLFFBQVEsQ0FBQ2IsR0FBRCxFQUFNeUIsT0FBTixDQUFkO0FBQ0FDLElBQUFBLE9BQU8sQ0FBQ0UsTUFBUixDQUFlQyxLQUFmLENBQXNCLGlCQUFnQkosT0FBUSxJQUE5QztBQUNBLFVBQU1LLGFBQUlDLENBQUosQ0FBTTtBQUNWQyxNQUFBQSxDQUFDLEVBQUVWLE9BRE87QUFFVk4sTUFBQUEsSUFBSSxFQUFFUztBQUZJLEtBQU4sQ0FBTjtBQUlELEc7Ozs7QUFFREosT0FBTyxHQUFHWSxLQUFWLENBQWdCQyxPQUFPLENBQUNDLEtBQXhCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gJ2ZzJztcbmltcG9ydCBodHRwcyBmcm9tICdodHRwcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB0YXIgZnJvbSAndGFyJztcbmltcG9ydCB7IEluY29taW5nTWVzc2FnZSB9IGZyb20gJ2h0dHAnO1xuaW1wb3J0IHdoZXJlIGZyb20gJy4vd2hlcmUnO1xuXG5jb25zdCBvcHRpb25zID0ge1xuICB2ZXJzaW9uOiAnMy43NScsXG59O1xuXG5hc3luYyBmdW5jdGlvbiBkb3dubG9hZFN0cmVhbSh1cmw6IHN0cmluZyk6IFByb21pc2U8SW5jb21pbmdNZXNzYWdlPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgaHR0cHNcbiAgICAgIC5yZXF1ZXN0KHVybCwgKHJlczogSW5jb21pbmdNZXNzYWdlKSA9PiB7XG4gICAgICAgIGlmIChyZXMuc3RhdHVzQ29kZSA9PT0gMjAwKSB7XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmUocmVzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgKHJlcy5zdGF0dXNDb2RlID09PSAzMDEgfHwgcmVzLnN0YXR1c0NvZGUgPT09IDMwMikgJiZcbiAgICAgICAgICByZXMuaGVhZGVycy5sb2NhdGlvblxuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4gcmVzb2x2ZShkb3dubG9hZFN0cmVhbShyZXMuaGVhZGVycy5sb2NhdGlvbikpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZWplY3QocmVzLnN0YXR1c0NvZGUpO1xuICAgICAgfSlcbiAgICAgIC5vbignZXJyb3InLCAoZXJyOiBFcnJvcikgPT4ge1xuICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgIH0pXG4gICAgICAuZW5kKCk7XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBkb3dubG9hZCh1cmw6IHN0cmluZywgb3V0cHV0UGF0aDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHN0cmVhbSA9IGF3YWl0IGRvd25sb2FkU3RyZWFtKHVybCk7XG4gIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZmlsZSA9IGZzLmNyZWF0ZVdyaXRlU3RyZWFtKG91dHB1dFBhdGgpO1xuICAgICAgc3RyZWFtLnBpcGUoZmlsZSk7XG4gICAgICByZXR1cm4gZmlsZS5vbignZmluaXNoJywgKCkgPT4ge1xuICAgICAgICBmaWxlLmNsb3NlKCk7XG4gICAgICAgIHJldHVybiByZXNvbHZlKCk7XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHJldHVybiByZWplY3QoZXJyKTtcbiAgICB9XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBpbnN0YWxsKCkge1xuICBpZiAoYXdhaXQgd2hlcmUoJ21ha2UnKSkgcmV0dXJuO1xuICBjb25zdCBiaW5QYXRoID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uL2JpbicpO1xuICBjb25zdCB0YXJQYXRoID0gcGF0aC5yZXNvbHZlKGJpblBhdGgsICdtYWtlLnRhci5neicpO1xuICBjb25zdCB1cmwgPSBgaHR0cHM6Ly9naXRodWIuY29tL2NvZGVqYW1uaW5qYS9wb3J0YWJsZS1tYWtlL3JlbGVhc2VzL2Rvd25sb2FkLyR7b3B0aW9ucy52ZXJzaW9ufS9tYWtlLSR7cHJvY2Vzcy5wbGF0Zm9ybX0tJHtvcHRpb25zLnZlcnNpb259LnRhci5nemA7XG4gIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGBkb3dubG9hZGluZyAtPiAke3VybH1cXG5gKTtcbiAgYXdhaXQgZG93bmxvYWQodXJsLCB0YXJQYXRoKTtcbiAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoYGV4dHJhY3RpbmcgLT4gJHt0YXJQYXRofVxcbmApO1xuICBhd2FpdCB0YXIueCh7XG4gICAgQzogYmluUGF0aCxcbiAgICBmaWxlOiB0YXJQYXRoLFxuICB9KTtcbn1cblxuaW5zdGFsbCgpLmNhdGNoKGNvbnNvbGUuZXJyb3IpO1xuIl19