Spaces:
Sleeping
Sleeping
| import path from "node:path"; | |
| export const DEFAULT_CLI_NAME = "openclaw"; | |
| const KNOWN_CLI_NAMES = new Set([DEFAULT_CLI_NAME]); | |
| const CLI_PREFIX_RE = /^(?:((?:pnpm|npm|bunx|npx)\s+))?(openclaw)\b/; | |
| export function resolveCliName(argv: string[] = process.argv): string { | |
| const argv1 = argv[1]; | |
| if (!argv1) { | |
| return DEFAULT_CLI_NAME; | |
| } | |
| const base = path.basename(argv1).trim(); | |
| if (KNOWN_CLI_NAMES.has(base)) { | |
| return base; | |
| } | |
| return DEFAULT_CLI_NAME; | |
| } | |
| export function replaceCliName(command: string, cliName = resolveCliName()): string { | |
| if (!command.trim()) { | |
| return command; | |
| } | |
| if (!CLI_PREFIX_RE.test(command)) { | |
| return command; | |
| } | |
| return command.replace(CLI_PREFIX_RE, (_match, runner: string | undefined) => { | |
| return `${runner ?? ""}${cliName}`; | |
| }); | |
| } | |