mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-05 06:10:21 +00:00
31 lines
899 B
TypeScript
31 lines
899 B
TypeScript
import fs from "node:fs/promises";
|
|
import os from "node:os";
|
|
import path from "node:path";
|
|
|
|
export type SecretFiles = {
|
|
passwordFile?: string;
|
|
tokenFile?: string;
|
|
};
|
|
|
|
export async function withTempSecretFiles<T>(
|
|
prefix: string,
|
|
secrets: { password?: string; token?: string },
|
|
run: (files: SecretFiles) => Promise<T>,
|
|
): Promise<T> {
|
|
const dir = await fs.mkdtemp(path.join(os.tmpdir(), prefix));
|
|
try {
|
|
const files: SecretFiles = {};
|
|
if (secrets.token !== undefined) {
|
|
files.tokenFile = path.join(dir, "token.txt");
|
|
await fs.writeFile(files.tokenFile, secrets.token, "utf8");
|
|
}
|
|
if (secrets.password !== undefined) {
|
|
files.passwordFile = path.join(dir, "password.txt");
|
|
await fs.writeFile(files.passwordFile, secrets.password, "utf8");
|
|
}
|
|
return await run(files);
|
|
} finally {
|
|
await fs.rm(dir, { recursive: true, force: true });
|
|
}
|
|
}
|