summaryrefslogtreecommitdiff
path: root/packages/cli/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/cli/src')
-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;
+ }
}