Files
osr-mono/packages/osr-cli-commons/lib/run.js
T
2025-01-29 17:48:22 +01:00

83 lines
7.6 KiB
JavaScript

"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.yargsOptions = exports.run = exports.zodSchema = void 0;
const zod_1 = require("zod");
const fs = require("fs");
const child_process = require("child_process");
const path = require("path");
const read_1 = require("@plastichub/fs/read");
const exists_1 = require("@plastichub/fs/exists");
const __1 = require("../");
const osr_commons_1 = require("@plastichub/osr-commons");
const zodSchema = () => zod_1.z.object({
config: zod_1.z.string().default('default'),
dry: zod_1.z.boolean().default(false),
list: zod_1.z.boolean().default(false),
projectPath: zod_1.z.string().default(process.cwd()),
logFilePath: zod_1.z.string().default(path.join(process.cwd(), 'log-configuration.json')),
}, { description: 'RunDebugSchema' });
exports.zodSchema = zodSchema;
const run = (options, argv) => __awaiter(void 0, void 0, void 0, function* () {
options = Object.assign(Object.assign({}, options), argv);
const vscodeDir = path.join(options.projectPath, '.vscode');
const launchFile = path.join(vscodeDir, 'launch.json');
if (!(0, exists_1.sync)(launchFile)) {
__1.logger.error('No launch.json found in the .vscode directory.');
return false;
}
if (!(0, exists_1.sync)(options.projectPath)) {
__1.logger.error('Invalid project path:', options.projectPath);
return false;
}
const launchConfig = (0, read_1.sync)(launchFile, 'json');
const config = launchConfig.configurations.find((c) => c.name === options.config);
if (!config) {
__1.logger.error(`Debug configuration with name "${options.config}" not found.`, launchConfig.configurations.map((c) => c.name), argv);
return false;
}
let command = config.program;
if (command === '${workspaceFolder}\\src\\main.ts' || command === '${workspaceFolder}\\src\\main.js') {
command = 'node.exe ./main.js';
}
if (!command) {
__1.logger.error('The configuration does not contain a "program" to execute.');
return false;
}
const args = config.args || [];
const exe_options = { cwd: options.projectPath };
__1.logger.debug('Executing debug configuration:', command, exe_options);
if (options.list) {
__1.logger.info('Listing the debug configuration:', launchConfig.configurations.map((c) => c.name));
return true;
}
if (options.dry) {
__1.logger.info('Dry run of the debug configuration:', config);
return true;
}
try {
const ret = child_process.execFileSync(command, args, {
cwd: options.projectPath,
stdio: 'inherit',
shell: true
});
}
catch (err) {
const logData = `${new Date().toISOString()} ERROR: ${err}`;
fs.appendFileSync(options.logFilePath, logData, 'utf-8');
__1.logger.error('Failed to execute the debug configuration:', err);
return false;
}
});
exports.run = run;
const yargsOptions = (yargs) => (0, osr_commons_1.toYargs)(yargs, (0, exports.zodSchema)());
exports.yargsOptions = yargsOptions;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2xpYi9ydW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQ0EsNkJBQXVCO0FBRXZCLHlCQUF3QjtBQUN4QiwrQ0FBOEM7QUFDOUMsNkJBQTRCO0FBRTVCLDhDQUFrRDtBQUNsRCxrREFBc0Q7QUFDdEQsMkJBQW1DO0FBQ25DLHlEQUFpRDtBQU8xQyxNQUFNLFNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3BDLE1BQU0sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUNyQyxHQUFHLEVBQUUsT0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDL0IsSUFBSSxFQUFFLE9BQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQ2hDLFdBQVcsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUM5QyxXQUFXLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0NBQ3RGLEVBQUMsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFBO0FBTnZCLFFBQUEsU0FBUyxhQU1jO0FBRTdCLE1BQU0sR0FBRyxHQUFHLENBQU8sT0FBWSxFQUFFLElBQUksRUFBRSxFQUFFO0lBQzVDLE9BQU8sbUNBQVEsT0FBTyxHQUFLLElBQUksQ0FBRSxDQUFBO0lBQ2pDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQTtJQUMzRCxNQUFNLFVBQVUsR0FB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