@grnsft/if
Version:
Impact Framework
75 lines • 8.27 kB
JavaScript
;
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=