Просмотр исходного кода

smooth out initial onboarding flow

Dax Raad 7 месяцев назад
Родитель
Сommit
c0773dc7c5
2 измененных файлов с 13 добавлено и 9 удалено
  1. 8 5
      packages/opencode/src/cli/cmd/tui.ts
  2. 5 4
      packages/opencode/src/index.ts

+ 8 - 5
packages/opencode/src/cli/cmd/tui.ts

@@ -9,7 +9,6 @@ import fs from "fs/promises"
 import { Installation } from "../../installation"
 import { Config } from "../../config/config"
 import { Bus } from "../../bus"
-import { AuthLoginCommand } from "./auth"
 
 export const TuiCommand = cmd({
   command: "$0 [project]",
@@ -100,11 +99,15 @@ export const TuiCommand = cmd({
       if (result === "needs_provider") {
         UI.empty()
         UI.println(UI.logo("   "))
+        const result = await Bun.spawn({
+          cmd: [process.execPath, "auth", "login"],
+          cwd: process.cwd(),
+          stdout: "inherit",
+          stderr: "inherit",
+          stdin: "inherit",
+        }).exited
+        if (result !== 0) return
         UI.empty()
-        await AuthLoginCommand.handler(args)
-        UI.empty()
-        UI.println("Provider configured - please run again")
-        return
       }
     }
   },

+ 5 - 4
packages/opencode/src/index.ts

@@ -74,15 +74,15 @@ try {
       ...obj.data,
     })
   }
-  
+
   if (e instanceof Error) {
     Object.assign(data, {
       name: e.name,
       message: e.message,
       cause: e.cause?.toString(),
     })
-  } 
-  
+  }
+
   if (e instanceof ResolveMessage) {
     Object.assign(data, {
       name: e.name,
@@ -92,7 +92,7 @@ try {
       referrer: e.referrer,
       position: e.position,
       importKind: e.importKind,
-    });
+    })
   }
   Log.Default.error("fatal", data)
   const formatted = FormatError(e)
@@ -101,6 +101,7 @@ try {
     UI.error(
       "Unexpected error, check log file at " + Log.file() + " for more details",
     )
+  process.exitCode = 1
 }
 
 cancel.abort()