38 lines
858 B
TypeScript
38 lines
858 B
TypeScript
import { executeScriptService } from '@electron/service/execute-script-service';
|
|
import {
|
|
getScriptPathById,
|
|
updateLastRun,
|
|
} from '@electron/service/script-store-service';
|
|
import type { ScriptExecutionResult } from '@lib/script-types';
|
|
|
|
const executor = new executeScriptService();
|
|
|
|
export async function runScriptById(
|
|
id: string,
|
|
channel?: string,
|
|
): Promise<ScriptExecutionResult> {
|
|
const scriptPath = getScriptPathById(id);
|
|
if (!scriptPath) {
|
|
return {
|
|
success: false,
|
|
exitCode: null,
|
|
stdoutTail: '',
|
|
stderrTail: '',
|
|
error: 'Script not found',
|
|
};
|
|
}
|
|
|
|
const result = await executor.executeScript(scriptPath, {
|
|
SCRIPT_ID: id,
|
|
CHANNEL: channel || '',
|
|
});
|
|
|
|
updateLastRun(id, {
|
|
time: new Date().toISOString(),
|
|
success: result.success,
|
|
error: result.error,
|
|
});
|
|
|
|
return result;
|
|
}
|