mirror of
https://github.com/moltbot/moltbot.git
synced 2026-04-21 05:32:53 +00:00
refactor: dedupe path lowercase helpers
This commit is contained in:
@@ -6,6 +6,7 @@ import { promisify } from "node:util";
|
||||
import { danger, shouldLogVerbose } from "../globals.js";
|
||||
import { markOpenClawExecEnv } from "../infra/openclaw-exec-env.js";
|
||||
import { logDebug, logError } from "../logger.js";
|
||||
import { normalizeLowercaseStringOrEmpty } from "../shared/string-coerce.js";
|
||||
import { resolveCommandStdio } from "./spawn-utils.js";
|
||||
import { resolveWindowsCommandShim } from "./windows-command.js";
|
||||
|
||||
@@ -17,7 +18,7 @@ function isWindowsBatchCommand(resolvedCommand: string): boolean {
|
||||
if (process.platform !== "win32") {
|
||||
return false;
|
||||
}
|
||||
const ext = path.extname(resolvedCommand).toLowerCase();
|
||||
const ext = normalizeLowercaseStringOrEmpty(path.extname(resolvedCommand));
|
||||
return ext === ".cmd" || ext === ".bat";
|
||||
}
|
||||
|
||||
@@ -49,10 +50,10 @@ function resolveNpmArgvForWindows(argv: string[]): string[] | null {
|
||||
if (process.platform !== "win32" || argv.length === 0) {
|
||||
return null;
|
||||
}
|
||||
const basename = path
|
||||
.basename(argv[0])
|
||||
.toLowerCase()
|
||||
.replace(/\.(cmd|exe|bat)$/, "");
|
||||
const basename = normalizeLowercaseStringOrEmpty(path.basename(argv[0])).replace(
|
||||
/\.(cmd|exe|bat)$/,
|
||||
"",
|
||||
);
|
||||
const cliName = basename === "npx" ? "npx-cli.js" : basename === "npm" ? "npm-cli.js" : null;
|
||||
if (!cliName) {
|
||||
return null;
|
||||
@@ -64,7 +65,7 @@ function resolveNpmArgvForWindows(argv: string[]): string[] | null {
|
||||
// Fall back to npm.cmd/npx.cmd so we still route through cmd wrapper
|
||||
// (avoids direct .cmd spawn EINVAL on patched Node).
|
||||
const command = argv[0] ?? "";
|
||||
const ext = path.extname(command).toLowerCase();
|
||||
const ext = normalizeLowercaseStringOrEmpty(path.extname(command));
|
||||
const shimmedCommand = ext ? command : `${command}.cmd`;
|
||||
return [shimmedCommand, ...argv.slice(1)];
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import path from "node:path";
|
||||
import process from "node:process";
|
||||
import { normalizeLowercaseStringOrEmpty } from "../shared/string-coerce.js";
|
||||
|
||||
export function resolveWindowsCommandShim(params: {
|
||||
command: string;
|
||||
@@ -9,7 +10,7 @@ export function resolveWindowsCommandShim(params: {
|
||||
if ((params.platform ?? process.platform) !== "win32") {
|
||||
return params.command;
|
||||
}
|
||||
const basename = path.basename(params.command).toLowerCase();
|
||||
const basename = normalizeLowercaseStringOrEmpty(path.basename(params.command));
|
||||
if (path.extname(basename)) {
|
||||
return params.command;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user