Przeglądaj źródła

fix: false positive package manager detection in upgrade (#3181)

Aiden Cline 4 miesięcy temu
rodzic
commit
717b544633

+ 13 - 3
packages/opencode/src/cli/cmd/upgrade.ts

@@ -27,9 +27,19 @@ export const UpgradeCommand = {
     const detectedMethod = await Installation.method()
     const detectedMethod = await Installation.method()
     const method = (args.method as Installation.Method) ?? detectedMethod
     const method = (args.method as Installation.Method) ?? detectedMethod
     if (method === "unknown") {
     if (method === "unknown") {
-      prompts.log.error(`opencode is installed to ${process.execPath} and seems to be managed by a package manager`)
-      prompts.outro("Done")
-      return
+      prompts.log.error(`opencode is installed to ${process.execPath} and may be managed by a package manager`)
+      const install = await prompts.select({
+        message: "Install anyways?",
+        options: [
+          { label: "Yes", value: true },
+          { label: "No", value: false },
+        ],
+        initialValue: false,
+      })
+      if (!install) {
+        prompts.outro("Done")
+        return
+      }
     }
     }
     prompts.log.info("Using method: " + method)
     prompts.log.info("Using method: " + method)
     const target = args.target ? args.target.replace(/^v/, "") : await Installation.latest()
     const target = args.target ? args.target.replace(/^v/, "") : await Installation.latest()

+ 1 - 0
packages/opencode/src/installation/index.ts

@@ -50,6 +50,7 @@ export namespace Installation {
 
 
   export async function method() {
   export async function method() {
     if (process.execPath.includes(path.join(".opencode", "bin"))) return "curl"
     if (process.execPath.includes(path.join(".opencode", "bin"))) return "curl"
+    if (process.execPath.includes(path.join(".local", "bin"))) return "curl"
     const exec = process.execPath.toLowerCase()
     const exec = process.execPath.toLowerCase()
 
 
     const checks = [
     const checks = [