|
1 | 1 | import fs from "node:fs/promises"; |
2 | | -import os from "node:os"; |
3 | 2 | import path from "node:path"; |
4 | 3 | import type { CliBackendPlugin } from "openclaw/plugin-sdk/cli-backend"; |
5 | 4 | import { |
6 | 5 | CLI_FRESH_WATCHDOG_DEFAULTS, |
7 | 6 | CLI_RESUME_WATCHDOG_DEFAULTS, |
8 | 7 | } from "openclaw/plugin-sdk/cli-backend"; |
| 8 | +import { resolvePreferredOpenClawTmpDir } from "openclaw/plugin-sdk/temp-path"; |
9 | 9 | import { |
10 | 10 | GOOGLE_GEMINI_CLI_PROVIDER_ID, |
11 | 11 | resolveGeminiCliProfileHome as resolveGeminiCliProfileHomePath, |
@@ -286,14 +286,21 @@ async function prepareGeminiCliProfileHome(
|
286 | 286 | await fs.chmod(geminiDir, 0o700); |
287 | 287 | const settings = buildGeminiCliAuthSettings(selectedType); |
288 | 288 | const systemSettings = await buildGeminiCliSystemSettings(ctx, selectedType); |
289 | | -const systemSettingsDir = await fs.mkdtemp(path.join(os.tmpdir(), "openclaw-gemini-cli-")); |
| 289 | +const systemSettingsDir = await fs.mkdtemp( |
| 290 | +path.join(resolvePreferredOpenClawTmpDir(), "openclaw-gemini-cli-"), |
| 291 | +); |
290 | 292 | await fs.chmod(systemSettingsDir, 0o700); |
291 | 293 | const systemSettingsPath = path.join(systemSettingsDir, "settings.json"); |
292 | | -await Promise.all([ |
293 | | -writeGeminiCliJson(path.join(geminiDir, "settings.json"), settings), |
294 | | -writeGeminiCliJson(path.join(home, "settings.json"), settings), |
295 | | -writeGeminiCliJson(systemSettingsPath, systemSettings), |
296 | | -]); |
| 294 | +try { |
| 295 | +await Promise.all([ |
| 296 | +writeGeminiCliJson(path.join(geminiDir, "settings.json"), settings), |
| 297 | +writeGeminiCliJson(path.join(home, "settings.json"), settings), |
| 298 | +writeGeminiCliJson(systemSettingsPath, systemSettings), |
| 299 | +]); |
| 300 | +} catch (error) { |
| 301 | +await fs.rm(systemSettingsDir, { recursive: true, force: true }); |
| 302 | +throw error; |
| 303 | +} |
297 | 304 | return { |
298 | 305 | home, |
299 | 306 | geminiDir, |
|