diff --git a/scripts/src/docker.ts b/scripts/src/docker.ts index 7c353ae2..7f531cec 100644 --- a/scripts/src/docker.ts +++ b/scripts/src/docker.ts @@ -55,12 +55,14 @@ export function writeComposeEnv(config: UniDeskConfig, freshLogPrefix: boolean): const stateDir = rootPath(config.paths.stateDir); mkdirSync(stateDir, { recursive: true }); const envFile = join(stateDir, "docker-compose.env"); + const previousRaw = existsSync(envFile) ? readFileSync(envFile, "utf8") : ""; + const previousValue = (key: string): string => previousRaw.match(new RegExp(`^${key}=(.*)$`, "m"))?.[1]?.replace(/^"|"$/g, "") ?? ""; + const runtimeSecret = (key: string): string => process.env[key] ?? previousValue(key); let logDir: string; let logPrefix: string; - if (!freshLogPrefix && existsSync(envFile)) { - const raw = readFileSync(envFile, "utf8"); - logDir = raw.match(/^UNIDESK_LOG_DIR=(.*)$/m)?.[1]?.replace(/^"|"$/g, "") ?? rootPath(config.paths.logsDir); - logPrefix = raw.match(/^UNIDESK_LOG_PREFIX=(.*)$/m)?.[1]?.replace(/^"|"$/g, "") ?? localDateParts(new Date()).stamp; + if (!freshLogPrefix && previousRaw.length > 0) { + logDir = previousValue("UNIDESK_LOG_DIR") || rootPath(config.paths.logsDir); + logPrefix = previousValue("UNIDESK_LOG_PREFIX") || localDateParts(new Date()).stamp; } else { const parts = localDateParts(new Date()); logDir = resolve(rootPath(config.paths.logsDir, parts.day)); @@ -109,6 +111,9 @@ export function writeComposeEnv(config: UniDeskConfig, freshLogPrefix: boolean): UNIDESK_HOST_SSH_HOST: config.sshForwarding.host, UNIDESK_HOST_SSH_PORT: String(config.sshForwarding.port), UNIDESK_HOST_SSH_USER: config.sshForwarding.user, + UNIDESK_CODEX_QUEUE_MINIMAX_API_KEY: runtimeSecret("UNIDESK_CODEX_QUEUE_MINIMAX_API_KEY"), + UNIDESK_CODEX_QUEUE_MINIMAX_MODEL: runtimeSecret("UNIDESK_CODEX_QUEUE_MINIMAX_MODEL") || "MiniMax-M2.7", + UNIDESK_CODEX_QUEUE_MINIMAX_API_BASE: runtimeSecret("UNIDESK_CODEX_QUEUE_MINIMAX_API_BASE") || "https://api.minimax.io/v1", }; writeFileSync(envFile, Object.entries(lines).map(([key, value]) => `${key}=${envValue(value)}`).join("\n") + "\n", "utf8"); return { envFile, logDir, logPrefix };