UNPKG

@grnsft/if

Version:

Impact Framework

90 lines 7.92 kB
#!/usr/bin/env node "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.runHelpCommand = exports.parseManifestFromStdin = exports.prependFullFilePath = exports.execFilePromise = exports.execPromise = void 0; /* eslint-disable no-process-exit */ const promises_1 = require("node:readline/promises"); const child_process_1 = require("child_process"); const path = __importStar(require("path")); const util_1 = require("util"); /** * Promise version of Node's `exec` and `execFile` from `child-process`. */ exports.execPromise = (0, util_1.promisify)(child_process_1.exec); exports.execFilePromise = (0, util_1.promisify)(child_process_1.execFile); /** * Prepends process path to given `filePath`. */ const prependFullFilePath = (filePath) => { return path.resolve(process.env.CURRENT_DIR || process.cwd(), filePath); }; exports.prependFullFilePath = prependFullFilePath; /** * Checks if there is data piped, then collects it. * Otherwise returns empty string. */ const collectPipedData = async () => { if (process.stdin.isTTY) { return ''; } const readline = (0, promises_1.createInterface)({ input: process.stdin, }); const data = []; for await (const line of readline) { data.push(line); } return data.join('\n'); }; /** * Checks if there is piped data, tries to parse yaml from it. * Returns empty string if haven't found anything. */ const parseManifestFromStdin = async () => { const pipedSourceManifest = await collectPipedData(); if (!pipedSourceManifest) { return ''; } const regex = /# start((?:.*\n)+?)# end/; const match = regex.exec(pipedSourceManifest); if (!match) { return ''; } return match[1]; }; exports.parseManifestFromStdin = parseManifestFromStdin; /** * Runs the --help command when the entered command is incorrect. */ const runHelpCommand = (command) => { console.log(`Here are the supported flags for the \`${command}\` command:`); (0, child_process_1.execFileSync)(process.execPath, [...process.execArgv, process.argv[1], '-h'], { stdio: 'inherit', }); process.exit(1); }; exports.runHelpCommand = runHelpCommand; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vdXRpbC9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLG9DQUFvQztBQUNwQyxxREFBdUQ7QUFDdkQsaURBQTJEO0FBQzNELDJDQUE2QjtBQUM3QiwrQkFBK0I7QUFFL0I7O0dBRUc7QUFDVSxRQUFBLFdBQVcsR0FBRyxJQUFBLGdCQUFTLEVBQUMsb0JBQUksQ0FBQyxDQUFDO0FBQzlCLFFBQUEsZUFBZSxHQUFHLElBQUEsZ0JBQVMsRUFBQyx3QkFBUSxDQUFDLENBQUM7QUFFbkQ7O0dBRUc7QUFDSSxNQUFNLG1CQUFtQixHQUFHLENBQUMsUUFBZ0IsRUFBRSxFQUFFO0lBQ3RELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDMUUsQ0FBQyxDQUFDO0FBRlcsUUFBQSxtQkFBbUIsdUJBRTlCO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLElBQUksRUFBRTtJQUNsQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFO1FBQ3ZCLE9BQU8sRUFBRSxDQUFDO0tBQ1g7SUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFBLDBCQUFlLEVBQUM7UUFDL0IsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO0tBQ3JCLENBQUMsQ0FBQztJQUVILE1BQU0sSUFBSSxHQUFhLEVBQUUsQ0FBQztJQUUxQixJQUFJLEtBQUssRUFBRSxNQUFNLElBQUksSUFBSSxRQUFRLEVBQUU7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNqQjtJQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN6QixDQUFDLENBQUM7QUFFRjs7O0dBR0c7QUFDSSxNQUFNLHNCQUFzQixHQUFHLEtBQUssSUFBSSxFQUFFO0lBQy9DLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxnQkFBZ0IsRUFBRSxDQUFDO0lBRXJELElBQUksQ0FBQyxtQkFBbUIsRUFBRTtRQUN4QixPQUFPLEVBQUUsQ0FBQztLQUNYO0lBRUQsTUFBTSxLQUFLLEdBQUcsMEJBQTBCLENBQUM7SUFDekMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBRTlDLElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDVixPQUFPLEVBQUUsQ0FBQztLQUNYO0lBRUQsT0FBTyxLQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkIsQ0FBQyxDQUFDO0FBZlcsUUFBQSxzQkFBc0IsMEJBZWpDO0FBRUY7O0dBRUc7QUFDSSxNQUFNLGNBQWMsR0FBRyxDQUFDLE9BQWUsRUFBRSxFQUFFO0lBQ2hELE9BQU8sQ0FBQyxHQUFHLENBQUMsMENBQTBDLE9BQU8sYUFBYSxDQUFDLENBQUM7SUFFNUUsSUFBQSw0QkFBWSxFQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRTtRQUMzRSxLQUFLLEVBQUUsU0FBUztLQUNqQixDQUFDLENBQUM7SUFFSCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQVJXLFFBQUEsY0FBYyxrQkFRekIiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1wcm9jZXNzLWV4aXQgKi9cbmltcG9ydCB7Y3JlYXRlSW50ZXJmYWNlfSBmcm9tICdub2RlOnJlYWRsaW5lL3Byb21pc2VzJztcbmltcG9ydCB7ZXhlYywgZXhlY0ZpbGUsIGV4ZWNGaWxlU3luY30gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtwcm9taXNpZnl9IGZyb20gJ3V0aWwnO1xuXG4vKipcbiAqIFByb21pc2UgdmVyc2lvbiBvZiBOb2RlJ3MgYGV4ZWNgIGFuZCBgZXhlY0ZpbGVgIGZyb20gYGNoaWxkLXByb2Nlc3NgLlxuICovXG5leHBvcnQgY29uc3QgZXhlY1Byb21pc2UgPSBwcm9taXNpZnkoZXhlYyk7XG5leHBvcnQgY29uc3QgZXhlY0ZpbGVQcm9taXNlID0gcHJvbWlzaWZ5KGV4ZWNGaWxlKTtcblxuLyoqXG4gKiBQcmVwZW5kcyBwcm9jZXNzIHBhdGggdG8gZ2l2ZW4gYGZpbGVQYXRoYC5cbiAqL1xuZXhwb3J0IGNvbnN0IHByZXBlbmRGdWxsRmlsZVBhdGggPSAoZmlsZVBhdGg6IHN0cmluZykgPT4ge1xuICByZXR1cm4gcGF0aC5yZXNvbHZlKHByb2Nlc3MuZW52LkNVUlJFTlRfRElSIHx8IHByb2Nlc3MuY3dkKCksIGZpbGVQYXRoKTtcbn07XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZXJlIGlzIGRhdGEgcGlwZWQsIHRoZW4gY29sbGVjdHMgaXQuXG4gKiBPdGhlcndpc2UgcmV0dXJucyBlbXB0eSBzdHJpbmcuXG4gKi9cbmNvbnN0IGNvbGxlY3RQaXBlZERhdGEgPSBhc3luYyAoKSA9PiB7XG4gIGlmIChwcm9jZXNzLnN0ZGluLmlzVFRZKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgY29uc3QgcmVhZGxpbmUgPSBjcmVhdGVJbnRlcmZhY2Uoe1xuICAgIGlucHV0OiBwcm9jZXNzLnN0ZGluLFxuICB9KTtcblxuICBjb25zdCBkYXRhOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGZvciBhd2FpdCAoY29uc3QgbGluZSBvZiByZWFkbGluZSkge1xuICAgIGRhdGEucHVzaChsaW5lKTtcbiAgfVxuXG4gIHJldHVybiBkYXRhLmpvaW4oJ1xcbicpO1xufTtcblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlcmUgaXMgcGlwZWQgZGF0YSwgdHJpZXMgdG8gcGFyc2UgeWFtbCBmcm9tIGl0LlxuICogUmV0dXJucyBlbXB0eSBzdHJpbmcgaWYgaGF2ZW4ndCBmb3VuZCBhbnl0aGluZy5cbiAqL1xuZXhwb3J0IGNvbnN0IHBhcnNlTWFuaWZlc3RGcm9tU3RkaW4gPSBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IHBpcGVkU291cmNlTWFuaWZlc3QgPSBhd2FpdCBjb2xsZWN0UGlwZWREYXRhKCk7XG5cbiAgaWYgKCFwaXBlZFNvdXJjZU1hbmlmZXN0KSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgY29uc3QgcmVnZXggPSAvIyBzdGFydCgoPzouKlxcbikrPykjIGVuZC87XG4gIGNvbnN0IG1hdGNoID0gcmVnZXguZXhlYyhwaXBlZFNvdXJjZU1hbmlmZXN0KTtcblxuICBpZiAoIW1hdGNoKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgcmV0dXJuIG1hdGNoIVsxXTtcbn07XG5cbi8qKlxuICogUnVucyB0aGUgLS1oZWxwIGNvbW1hbmQgd2hlbiB0aGUgZW50ZXJlZCBjb21tYW5kIGlzIGluY29ycmVjdC5cbiAqL1xuZXhwb3J0IGNvbnN0IHJ1bkhlbHBDb21tYW5kID0gKGNvbW1hbmQ6IHN0cmluZykgPT4ge1xuICBjb25zb2xlLmxvZyhgSGVyZSBhcmUgdGhlIHN1cHBvcnRlZCBmbGFncyBmb3IgdGhlIFxcYCR7Y29tbWFuZH1cXGAgY29tbWFuZDpgKTtcblxuICBleGVjRmlsZVN5bmMocHJvY2Vzcy5leGVjUGF0aCwgWy4uLnByb2Nlc3MuZXhlY0FyZ3YsIHByb2Nlc3MuYXJndlsxXSwgJy1oJ10sIHtcbiAgICBzdGRpbzogJ2luaGVyaXQnLFxuICB9KTtcblxuICBwcm9jZXNzLmV4aXQoMSk7XG59O1xuIl19