UNPKG

@grnsft/if

Version:

Impact Framework

75 lines 8.27 kB
"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.executeCommands = void 0; const path = __importStar(require("node:path")); const child_process_1 = require("child_process"); const fs_1 = require("../../common/util/fs"); const config_1 = require("../config"); const { IF_CHECK_VERIFIED } = config_1.STRINGS; /** * Executes a single Impact Framework command. */ const executeCommand = (command, args, executionOptions) => { const commandPath = process.argv[1].replace(/(?<=[/\\])if-check(?:[/\\]index(?:\.[jt]s)?)?$/, command); return (0, child_process_1.execFileSync)(process.execPath, [...process.execArgv, commandPath, ...args], executionOptions); }; /** * Executes a series of Impact Framework commands based on the provided manifest file. */ const executeCommands = async (manifest) => { // Get fullpath of the manifest if (!path.isAbsolute(manifest)) { manifest = path.resolve(process.env.CURRENT_DIR || process.cwd(), manifest); } // Get the directory path and file name of the manifest const manifestDirPath = path.dirname(manifest); const manifestFileName = (0, fs_1.getFileName)(manifest); // Create a path for the executed manifest file const executedManifest = path.join(manifestDirPath, `re-${manifestFileName}`); try { // Execute the if-env command executeCommand('if-env', ['-m', manifest], { stdio: 'ignore', }); // Execute the if-run command executeCommand('if-run', ['-m', manifest, '-o', executedManifest], { stdio: 'ignore', }); // Execute the if-diff command executeCommand('if-diff', ['-s', `${executedManifest}.yaml`, '-t', manifest], { stdio: 'inherit', }); } finally { // Remove the package.json file if it exists await (0, fs_1.removeFileIfExists)(`${manifestDirPath}/package.json`); // Remove the executed manifest file if it exists await (0, fs_1.removeFileIfExists)(`${executedManifest}.yaml`); } console.log(IF_CHECK_VERIFIED(path.basename(manifest))); }; exports.executeCommands = executeCommands; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2lmLWNoZWNrL3V0aWwvbnBtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBQWtDO0FBQ2xDLGlEQUFxRTtBQUNyRSw2Q0FBcUU7QUFDckUsc0NBQWtDO0FBRWxDLE1BQU0sRUFBQyxpQkFBaUIsRUFBQyxHQUFHLGdCQUFPLENBQUM7QUFFcEM7O0dBRUc7QUFDSCxNQUFNLGNBQWMsR0FBRyxDQUNyQixPQUFlLEVBQ2YsSUFBdUIsRUFDdkIsZ0JBQXFDLEVBQ3JDLEVBQUU7SUFDRixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDekMsZ0RBQWdELEVBQ2hELE9BQU8sQ0FDUixDQUFDO0lBRUYsT0FBTyxJQUFBLDRCQUFZLEVBQ2pCLE9BQU8sQ0FBQyxRQUFRLEVBQ2hCLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUMzQyxnQkFBZ0IsQ0FDakIsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0ksTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUFFLFFBQWdCLEVBQUUsRUFBRTtJQUN4RCwrQkFBK0I7SUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDOUIsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0tBQzdFO0lBQ0QsdURBQXVEO0lBQ3ZELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0MsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLGdCQUFXLEVBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0MsK0NBQStDO0lBQy9DLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFFOUUsSUFBSTtRQUNGLDZCQUE2QjtRQUM3QixjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxFQUFFO1lBQ3pDLEtBQUssRUFBRSxRQUFRO1NBQ2hCLENBQUMsQ0FBQztRQUVILDZCQUE2QjtRQUM3QixjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsRUFBRTtZQUNqRSxLQUFLLEVBQUUsUUFBUTtTQUNoQixDQUFDLENBQUM7UUFFSCw4QkFBOEI7UUFDOUIsY0FBYyxDQUNaLFNBQVMsRUFDVCxDQUFDLElBQUksRUFBRSxHQUFHLGdCQUFnQixPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxFQUNsRDtZQUNFLEtBQUssRUFBRSxTQUFTO1NBQ2pCLENBQ0YsQ0FBQztLQUNIO1lBQVM7UUFDUiw0Q0FBNEM7UUFDNUMsTUFBTSxJQUFBLHVCQUFrQixFQUFDLEdBQUcsZUFBZSxlQUFlLENBQUMsQ0FBQztRQUM1RCxpREFBaUQ7UUFDakQsTUFBTSxJQUFBLHVCQUFrQixFQUFDLEdBQUcsZ0JBQWdCLE9BQU8sQ0FBQyxDQUFDO0tBQ3REO0lBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxRCxDQUFDLENBQUM7QUF0Q1csUUFBQSxlQUFlLG1CQXNDMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQge2V4ZWNGaWxlU3luYywgdHlwZSBFeGVjRmlsZVN5bmNPcHRpb25zfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCB7Z2V0RmlsZU5hbWUsIHJlbW92ZUZpbGVJZkV4aXN0c30gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWwvZnMnO1xuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi9jb25maWcnO1xuXG5jb25zdCB7SUZfQ0hFQ0tfVkVSSUZJRUR9ID0gU1RSSU5HUztcblxuLyoqXG4gKiBFeGVjdXRlcyBhIHNpbmdsZSBJbXBhY3QgRnJhbWV3b3JrIGNvbW1hbmQuXG4gKi9cbmNvbnN0IGV4ZWN1dGVDb21tYW5kID0gKFxuICBjb21tYW5kOiBzdHJpbmcsXG4gIGFyZ3M6IHJlYWRvbmx5IHN0cmluZ1tdLFxuICBleGVjdXRpb25PcHRpb25zOiBFeGVjRmlsZVN5bmNPcHRpb25zXG4pID0+IHtcbiAgY29uc3QgY29tbWFuZFBhdGggPSBwcm9jZXNzLmFyZ3ZbMV0ucmVwbGFjZShcbiAgICAvKD88PVsvXFxcXF0paWYtY2hlY2soPzpbL1xcXFxdaW5kZXgoPzpcXC5banRdcyk/KT8kLyxcbiAgICBjb21tYW5kXG4gICk7XG5cbiAgcmV0dXJuIGV4ZWNGaWxlU3luYyhcbiAgICBwcm9jZXNzLmV4ZWNQYXRoLFxuICAgIFsuLi5wcm9jZXNzLmV4ZWNBcmd2LCBjb21tYW5kUGF0aCwgLi4uYXJnc10sXG4gICAgZXhlY3V0aW9uT3B0aW9uc1xuICApO1xufTtcblxuLyoqXG4gKiBFeGVjdXRlcyBhIHNlcmllcyBvZiBJbXBhY3QgRnJhbWV3b3JrIGNvbW1hbmRzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBtYW5pZmVzdCBmaWxlLlxuICovXG5leHBvcnQgY29uc3QgZXhlY3V0ZUNvbW1hbmRzID0gYXN5bmMgKG1hbmlmZXN0OiBzdHJpbmcpID0+IHtcbiAgLy8gR2V0IGZ1bGxwYXRoIG9mIHRoZSBtYW5pZmVzdFxuICBpZiAoIXBhdGguaXNBYnNvbHV0ZShtYW5pZmVzdCkpIHtcbiAgICBtYW5pZmVzdCA9IHBhdGgucmVzb2x2ZShwcm9jZXNzLmVudi5DVVJSRU5UX0RJUiB8fCBwcm9jZXNzLmN3ZCgpLCBtYW5pZmVzdCk7XG4gIH1cbiAgLy8gR2V0IHRoZSBkaXJlY3RvcnkgcGF0aCBhbmQgZmlsZSBuYW1lIG9mIHRoZSBtYW5pZmVzdFxuICBjb25zdCBtYW5pZmVzdERpclBhdGggPSBwYXRoLmRpcm5hbWUobWFuaWZlc3QpO1xuICBjb25zdCBtYW5pZmVzdEZpbGVOYW1lID0gZ2V0RmlsZU5hbWUobWFuaWZlc3QpO1xuICAvLyBDcmVhdGUgYSBwYXRoIGZvciB0aGUgZXhlY3V0ZWQgbWFuaWZlc3QgZmlsZVxuICBjb25zdCBleGVjdXRlZE1hbmlmZXN0ID0gcGF0aC5qb2luKG1hbmlmZXN0RGlyUGF0aCwgYHJlLSR7bWFuaWZlc3RGaWxlTmFtZX1gKTtcblxuICB0cnkge1xuICAgIC8vIEV4ZWN1dGUgdGhlIGlmLWVudiBjb21tYW5kXG4gICAgZXhlY3V0ZUNvbW1hbmQoJ2lmLWVudicsIFsnLW0nLCBtYW5pZmVzdF0sIHtcbiAgICAgIHN0ZGlvOiAnaWdub3JlJyxcbiAgICB9KTtcblxuICAgIC8vIEV4ZWN1dGUgdGhlIGlmLXJ1biBjb21tYW5kXG4gICAgZXhlY3V0ZUNvbW1hbmQoJ2lmLXJ1bicsIFsnLW0nLCBtYW5pZmVzdCwgJy1vJywgZXhlY3V0ZWRNYW5pZmVzdF0sIHtcbiAgICAgIHN0ZGlvOiAnaWdub3JlJyxcbiAgICB9KTtcblxuICAgIC8vIEV4ZWN1dGUgdGhlIGlmLWRpZmYgY29tbWFuZFxuICAgIGV4ZWN1dGVDb21tYW5kKFxuICAgICAgJ2lmLWRpZmYnLFxuICAgICAgWyctcycsIGAke2V4ZWN1dGVkTWFuaWZlc3R9LnlhbWxgLCAnLXQnLCBtYW5pZmVzdF0sXG4gICAgICB7XG4gICAgICAgIHN0ZGlvOiAnaW5oZXJpdCcsXG4gICAgICB9XG4gICAgKTtcbiAgfSBmaW5hbGx5IHtcbiAgICAvLyBSZW1vdmUgdGhlIHBhY2thZ2UuanNvbiBmaWxlIGlmIGl0IGV4aXN0c1xuICAgIGF3YWl0IHJlbW92ZUZpbGVJZkV4aXN0cyhgJHttYW5pZmVzdERpclBhdGh9L3BhY2thZ2UuanNvbmApO1xuICAgIC8vIFJlbW92ZSB0aGUgZXhlY3V0ZWQgbWFuaWZlc3QgZmlsZSBpZiBpdCBleGlzdHNcbiAgICBhd2FpdCByZW1vdmVGaWxlSWZFeGlzdHMoYCR7ZXhlY3V0ZWRNYW5pZmVzdH0ueWFtbGApO1xuICB9XG5cbiAgY29uc29sZS5sb2coSUZfQ0hFQ0tfVkVSSUZJRUQocGF0aC5iYXNlbmFtZShtYW5pZmVzdCkpKTtcbn07XG4iXX0=