openclaw-home-pc/openclaw/extensions/openclaw-lark/bin/openclaw-lark.js
2026-03-21 15:31:06 +08:00

49 lines
1.3 KiB
JavaScript
Executable File

#!/usr/bin/env node
import { execFileSync } from "node:child_process";
import { dirname, join } from "node:path";
// --tools-version <ver> lets the user pin a specific version
const args = process.argv.slice(2);
let version = "latest";
const vIdx = args.indexOf("--tools-version");
if (vIdx !== -1) {
version = args[vIdx + 1];
// Remove --tools-version <ver> from forwarded args
args.splice(vIdx, 2);
}
const allArgs = ["--yes", `@larksuite/openclaw-lark-tools@${version}`, ...args];
try {
if (process.platform === "win32") {
// On Windows, npx is a .cmd shim that can be broken or trigger
// DEP0190. Bypass it entirely: run node with the npx-cli.js
// script located next to the running node binary.
const npxCli = join(
dirname(process.execPath),
"node_modules",
"npm",
"bin",
"npx-cli.js",
);
execFileSync(process.execPath, [npxCli, ...allArgs], {
stdio: "inherit",
env: {
...process.env,
NODE_OPTIONS: [
process.env.NODE_OPTIONS,
"--disable-warning=DEP0190",
]
.filter(Boolean)
.join(" "),
},
});
} else {
execFileSync("npx", allArgs, { stdio: "inherit" });
}
} catch (error) {
process.exit(error.status ?? 1);
}