diff options
| author | Jacob Richman <[email protected]> | 2025-06-06 09:56:45 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-06-06 09:56:45 -0700 |
| commit | 89aca349cfd46cb242ba32533aee9bc49db89d94 (patch) | |
| tree | ecf14ec14357b3d6d19ef3b6089ea0180714e8de /packages/cli/src/gemini.tsx | |
| parent | b4a6b16227bd94bae99401b2effac8a24c3f92ff (diff) | |
Exit with an error message if parsing settings.json fails. (#747)
Diffstat (limited to 'packages/cli/src/gemini.tsx')
| -rw-r--r-- | packages/cli/src/gemini.tsx | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/packages/cli/src/gemini.tsx b/packages/cli/src/gemini.tsx index f9b73074..e2169980 100644 --- a/packages/cli/src/gemini.tsx +++ b/packages/cli/src/gemini.tsx @@ -37,7 +37,7 @@ import { const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); -async function main() { +export async function main() { // warn about deprecated environment variables if (process.env.GEMINI_CODE_MODEL) { console.warn('GEMINI_CODE_MODEL is deprecated. Use GEMINI_MODEL instead.'); @@ -61,6 +61,18 @@ async function main() { const settings = loadSettings(workspaceRoot); const geminiIgnorePatterns = loadGeminiIgnorePatterns(workspaceRoot); + if (settings.errors.length > 0) { + for (const error of settings.errors) { + let errorMessage = `Error in ${error.path}: ${error.message}`; + if (!process.env.NO_COLOR) { + errorMessage = `\x1b[31m${errorMessage}\x1b[0m`; + } + console.error(errorMessage); + console.error(`Please fix ${error.path} and try again.`); + } + process.exit(1); + } + const { config, modelWasSwitched, originalModelBeforeSwitch, finalModel } = await loadCliConfig(settings.merged, geminiIgnorePatterns); @@ -144,17 +156,6 @@ process.on('unhandledRejection', (reason, _promise) => { process.exit(1); }); -// --- Global Entry Point --- -main().catch((error) => { - console.error('An unexpected critical error occurred:'); - if (error instanceof Error) { - console.error(error.message); - } else { - console.error(String(error)); - } - process.exit(1); -}); - async function loadNonInteractiveConfig( config: Config, settings: LoadedSettings, |
