mirror of
https://github.com/openclaw/openclaw.git
synced 2026-06-05 15:42:54 +00:00
30 lines
843 B
TypeScript
30 lines
843 B
TypeScript
import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
|
|
import { tmpdir } from "node:os";
|
|
import path from "node:path";
|
|
|
|
export type McpClientTempState = {
|
|
cleanup: () => void;
|
|
root: string;
|
|
stateDir: string;
|
|
tokenFile: string;
|
|
};
|
|
|
|
export function createMcpClientTempState(params: {
|
|
gatewayToken: string;
|
|
tempRoot?: string;
|
|
}): McpClientTempState {
|
|
const root = mkdtempSync(path.join(params.tempRoot ?? tmpdir(), "openclaw-mcp-client-"));
|
|
const stateDir = path.join(root, "state");
|
|
const tokenFile = path.join(root, "gateway.token");
|
|
mkdirSync(stateDir, { recursive: true });
|
|
writeFileSync(tokenFile, `${params.gatewayToken}\n`, { encoding: "utf8", mode: 0o600 });
|
|
return {
|
|
cleanup: () => {
|
|
rmSync(root, { force: true, recursive: true });
|
|
},
|
|
root,
|
|
stateDir,
|
|
tokenFile,
|
|
};
|
|
}
|