mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-19 11:28:38 +00:00
refactor: share system run command resolution
This commit is contained in:
@@ -167,52 +167,23 @@ export function resolveSystemRunCommand(params: {
|
|||||||
command?: unknown;
|
command?: unknown;
|
||||||
rawCommand?: unknown;
|
rawCommand?: unknown;
|
||||||
}): ResolvedSystemRunCommand {
|
}): ResolvedSystemRunCommand {
|
||||||
const raw = normalizeRawCommandText(params.rawCommand);
|
return resolveSystemRunCommandWithMode(params, false);
|
||||||
const command = Array.isArray(params.command) ? params.command : [];
|
|
||||||
if (command.length === 0) {
|
|
||||||
if (raw) {
|
|
||||||
return {
|
|
||||||
ok: false,
|
|
||||||
message: "rawCommand requires params.command",
|
|
||||||
details: { code: "MISSING_COMMAND" },
|
|
||||||
};
|
|
||||||
}
|
|
||||||
return {
|
|
||||||
ok: true,
|
|
||||||
argv: [],
|
|
||||||
commandText: "",
|
|
||||||
shellPayload: null,
|
|
||||||
previewText: null,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
const argv = command.map((v) => String(v));
|
|
||||||
const validation = validateSystemRunCommandConsistency({
|
|
||||||
argv,
|
|
||||||
rawCommand: raw,
|
|
||||||
allowLegacyShellText: false,
|
|
||||||
});
|
|
||||||
if (!validation.ok) {
|
|
||||||
return {
|
|
||||||
ok: false,
|
|
||||||
message: validation.message,
|
|
||||||
details: validation.details ?? { code: "RAW_COMMAND_MISMATCH" },
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
|
||||||
ok: true,
|
|
||||||
argv,
|
|
||||||
commandText: validation.commandText,
|
|
||||||
shellPayload: validation.shellPayload,
|
|
||||||
previewText: validation.previewText,
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function resolveSystemRunCommandRequest(params: {
|
export function resolveSystemRunCommandRequest(params: {
|
||||||
command?: unknown;
|
command?: unknown;
|
||||||
rawCommand?: unknown;
|
rawCommand?: unknown;
|
||||||
}): ResolvedSystemRunCommand {
|
}): ResolvedSystemRunCommand {
|
||||||
|
return resolveSystemRunCommandWithMode(params, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
function resolveSystemRunCommandWithMode(
|
||||||
|
params: {
|
||||||
|
command?: unknown;
|
||||||
|
rawCommand?: unknown;
|
||||||
|
},
|
||||||
|
allowLegacyShellText: boolean,
|
||||||
|
): ResolvedSystemRunCommand {
|
||||||
const raw = normalizeRawCommandText(params.rawCommand);
|
const raw = normalizeRawCommandText(params.rawCommand);
|
||||||
const command = Array.isArray(params.command) ? params.command : [];
|
const command = Array.isArray(params.command) ? params.command : [];
|
||||||
if (command.length === 0) {
|
if (command.length === 0) {
|
||||||
@@ -236,7 +207,7 @@ export function resolveSystemRunCommandRequest(params: {
|
|||||||
const validation = validateSystemRunCommandConsistency({
|
const validation = validateSystemRunCommandConsistency({
|
||||||
argv,
|
argv,
|
||||||
rawCommand: raw,
|
rawCommand: raw,
|
||||||
allowLegacyShellText: true,
|
allowLegacyShellText,
|
||||||
});
|
});
|
||||||
if (!validation.ok) {
|
if (!validation.ok) {
|
||||||
return {
|
return {
|
||||||
|
|||||||
Reference in New Issue
Block a user