83 lines
7.6 KiB
JavaScript
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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
|