summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/utils/updateCheck.ts
diff options
context:
space:
mode:
authorN. Taylor Mullen <[email protected]>2025-06-20 00:30:30 -0700
committerGitHub <[email protected]>2025-06-20 07:30:30 +0000
commit4d9e258a1e2f60e4d69a7888fb1e4b86c5a314ff (patch)
tree63c65772c4ea57d313bb353d7cb8f3bc5bd931ac /packages/cli/src/ui/utils/updateCheck.ts
parent787c319e8759eec1dd205fd4e24e98fe60b38fc2 (diff)
Prevent hard crashing on update notifier fail. (#1254)
Diffstat (limited to 'packages/cli/src/ui/utils/updateCheck.ts')
-rw-r--r--packages/cli/src/ui/utils/updateCheck.ts45
1 files changed, 25 insertions, 20 deletions
diff --git a/packages/cli/src/ui/utils/updateCheck.ts b/packages/cli/src/ui/utils/updateCheck.ts
index 17d30378..9e2ec233 100644
--- a/packages/cli/src/ui/utils/updateCheck.ts
+++ b/packages/cli/src/ui/utils/updateCheck.ts
@@ -9,27 +9,32 @@ import { readPackageUp } from 'read-package-up';
import process from 'node:process';
export async function checkForUpdates(): Promise<string | null> {
- // read-package-up looks for the closest package.json from cwd
- const pkgResult = await readPackageUp({ cwd: process.cwd() });
- if (!pkgResult) {
- return null;
- }
+ try {
+ // read-package-up looks for the closest package.json from cwd
+ const pkgResult = await readPackageUp({ cwd: process.cwd() });
+ if (!pkgResult) {
+ return null;
+ }
- const { packageJson } = pkgResult;
- const notifier = updateNotifier({
- pkg: {
- name: packageJson.name,
- version: packageJson.version,
- },
- // check every time
- updateCheckInterval: 0,
- // allow notifier to run in scripts
- shouldNotifyInNpmScript: true,
- });
+ const { packageJson } = pkgResult;
+ const notifier = updateNotifier({
+ pkg: {
+ name: packageJson.name,
+ version: packageJson.version,
+ },
+ // check every time
+ updateCheckInterval: 0,
+ // allow notifier to run in scripts
+ shouldNotifyInNpmScript: true,
+ });
- if (notifier.update) {
- return `Gemini CLI update available! ${notifier.update.current} → ${notifier.update.latest}\nRun npm install -g ${packageJson.name} to update`;
- }
+ if (notifier.update) {
+ return `Gemini CLI update available! ${notifier.update.current} → ${notifier.update.latest}\nRun npm install -g ${packageJson.name} to update`;
+ }
- return null;
+ return null;
+ } catch (e) {
+ console.warn('Failed to check for updates: ' + e);
+ return null;
+ }
}