summaryrefslogtreecommitdiff
path: root/packages/cli/src/utils/startupWarnings.ts
diff options
context:
space:
mode:
authorBrandon Keiji <[email protected]>2025-05-14 00:12:04 +0000
committerGitHub <[email protected]>2025-05-13 17:12:04 -0700
commit7116ab9c293f6b59ae8490b234dd99c72d5dd72b (patch)
treef6100f40c257c728bfa5064cf4f3efc209fb72e7 /packages/cli/src/utils/startupWarnings.ts
parentd3303fd3a004ee816c2c498c2f7ffa51753afc07 (diff)
fix: pass startup warnings to app as prop (#342)
Diffstat (limited to 'packages/cli/src/utils/startupWarnings.ts')
-rw-r--r--packages/cli/src/utils/startupWarnings.ts40
1 files changed, 40 insertions, 0 deletions
diff --git a/packages/cli/src/utils/startupWarnings.ts b/packages/cli/src/utils/startupWarnings.ts
new file mode 100644
index 00000000..a55003e6
--- /dev/null
+++ b/packages/cli/src/utils/startupWarnings.ts
@@ -0,0 +1,40 @@
+/**
+ * @license
+ * Copyright 2025 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+import fs from 'fs/promises';
+import os from 'os';
+import { join as pathJoin } from 'node:path';
+import { getErrorMessage } from '@gemini-code/server';
+
+const warningsFilePath = pathJoin(os.tmpdir(), 'gemini-code-cli-warnings.txt');
+
+export async function getStartupWarnings(): Promise<string[]> {
+ try {
+ await fs.access(warningsFilePath); // Check if file exists
+ const warningsContent = await fs.readFile(warningsFilePath, 'utf-8');
+ const warnings = warningsContent
+ .split('\n')
+ .filter((line) => line.trim() !== '');
+ try {
+ await fs.unlink(warningsFilePath);
+ } catch {
+ warnings.push('Warning: Could not delete temporary warnings file.');
+ }
+ return warnings;
+ } catch (err: unknown) {
+ // If fs.access throws, it means the file doesn't exist or is not accessible.
+ // This is not an error in the context of fetching warnings, so return empty.
+ // Only return an error message if it's not a "file not found" type error.
+ // However, the original logic returned an error message for any fs.existsSync failure.
+ // To maintain closer parity while making it async, we'll check the error code.
+ // ENOENT is "Error NO ENTry" (file not found).
+ if (err instanceof Error && 'code' in err && err.code === 'ENOENT') {
+ return []; // File not found, no warnings to return.
+ }
+ // For other errors (permissions, etc.), return the error message.
+ return [`Error checking/reading warnings file: ${getErrorMessage(err)}`];
+ }
+}