CLI: Add --temporary flag to run command (#2354)

This commit is contained in:
catloversg
2025-10-19 02:04:39 +07:00
committed by GitHub
parent d785f20921
commit 222e42000c
6 changed files with 40 additions and 20 deletions
+6 -6
View File
@@ -266,8 +266,7 @@ export function loadAllRunningScripts(): void {
export function createRunningScriptInstance(
server: BaseServer,
scriptPath: ScriptFilePath,
ramOverride: number | null | undefined,
threads: number,
runOpts: CompleteRunOptions,
args: ScriptArg[],
): Result<{ runningScript: RunningScript }> {
const script = server.scripts.get(scriptPath);
@@ -285,25 +284,26 @@ export function createRunningScriptInstance(
};
}
const singleRamUsage = ramOverride ?? script.getRamUsage(server.scripts);
const singleRamUsage = runOpts.ramOverride ?? script.getRamUsage(server.scripts);
if (!singleRamUsage) {
return {
success: false,
message: `Cannot calculate RAM usage of ${scriptPath}. Reason: ${script.ramCalculationError}`,
};
}
const ramUsage = singleRamUsage * threads;
const ramUsage = singleRamUsage * runOpts.threads;
const ramAvailable = server.maxRam - server.ramUsed;
if (ramUsage > ramAvailable + 0.001) {
return {
success: false,
message: `Cannot run ${scriptPath} (t=${threads}) on ${server.hostname}. This script requires ${formatRam(
message: `Cannot run ${scriptPath} (t=${runOpts.threads}) on ${server.hostname}. This script requires ${formatRam(
ramUsage,
)} of RAM.`,
};
}
const runningScript = new RunningScript(script, singleRamUsage, args);
runningScript.temporary = runOpts.temporary;
return {
success: true,
runningScript,
@@ -320,7 +320,7 @@ export function runScriptFromScript(
runOpts: CompleteRunOptions,
): number {
// This does not adjust server RAM usage or change any state, so it is safe to call before performing other checks
const result = createRunningScriptInstance(server, scriptPath, runOpts.ramOverride, runOpts.threads, args);
const result = createRunningScriptInstance(server, scriptPath, runOpts, args);
if (!result.success) {
workerScript.log(caller, () => result.message);
return 0;