Skip to content

Commit 6c9b481

Browse files
committed
address review feedback: improve dry-run and handle brew failures
- Make --dry-run output more informative (show detected method and binary path) - Quote binaryPath in manual instructions for paths with spaces - Detect Homebrew upgrade failure and suggest uninstall/untap/reinstall
1 parent 2c5f167 commit 6c9b481

1 file changed

Lines changed: 17 additions & 2 deletions

File tree

cmd/upgrade.go

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,12 +75,27 @@ func runUpgrade(cmd *cobra.Command, args []string) error {
7575
}
7676

7777
if dryRun {
78+
pterm.Info.Printf("Detected installation method: %s\n", method)
79+
pterm.Info.Printf("Binary path: %s\n", binaryPath)
7880
pterm.Info.Printf("Would run: %s\n", getUpgradeCommand(method))
7981
return nil
8082
}
8183

8284
pterm.Info.Printf("Upgrading via %s...\n", method)
83-
return executeUpgrade(method)
85+
if err := executeUpgrade(method); err != nil {
86+
// If Homebrew upgrade fails, it might be due to old tap installation
87+
if method == update.InstallMethodBrew {
88+
pterm.Error.Println("Homebrew upgrade failed.")
89+
pterm.Info.Println("If you installed from the old onkernel/tap, run:")
90+
pterm.Println()
91+
fmt.Println(" brew uninstall kernel")
92+
fmt.Println(" brew untap onkernel/tap 2>/dev/null || true")
93+
fmt.Println(" brew install kernel/tap/kernel")
94+
pterm.Println()
95+
}
96+
return err
97+
}
98+
return nil
8499
}
85100

86101
// getUpgradeCommand returns the command string for a given installation method
@@ -144,6 +159,6 @@ func printManualUpgradeInstructions(version, binaryPath string) {
144159
pterm.Println()
145160
fmt.Printf(" wget %s -O /tmp/kernel.tar.gz\n", downloadURL)
146161
fmt.Printf(" tar -xzf /tmp/kernel.tar.gz -C /tmp\n")
147-
fmt.Printf(" sudo cp /tmp/kernel %s\n", binaryPath)
162+
fmt.Printf(" sudo cp /tmp/kernel %q\n", binaryPath)
148163
pterm.Println()
149164
}

0 commit comments

Comments
 (0)