neovim had no macOS install path at all — it always tried the Linux tarball

Asked to check how the script installs Neovim on Mac, and the answer was: it doesn't.
nvim_install() had zero `$OS` branching, so on macOS it unconditionally fetched
nvim-linux-<arch>.tar.gz — a URL that 404s there. Not a hard crash: the caller's
`if nvim_install; then … else warn …` catches it and reports "Neovim: install failed"
rather than aborting the run, which is exactly the shape that's easy to miss in a long
scrollback. brew has a current, real neovim formula (0.12.5), so that's the macOS
branch — no keg-only linking needed, unlike the Postgres client fix.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-27 03:55:21 +01:00
co-authored by Claude Opus 5
parent d02aac1eb8
commit 5dc9f2d5f7
+12
View File
@@ -155,7 +155,19 @@ nvim_latest_version() {
# #
# The old install is removed only after the download has succeeded, so a failed # The old install is removed only after the download has succeeded, so a failed
# fetch leaves the working copy alone. # fetch leaves the working copy alone.
#
# This had NO macOS branch at all until it was caught here: unconditionally fetched
# nvim-linux-<arch>.tar.gz regardless of $OS, which 404s on a Mac. Not a crash — the
# caller's `if nvim_install; then … else warn …` catches the failure and reports it as
# ERRORS+=("Neovim: install failed") rather than aborting the run — but Neovim never
# actually landed. brew has a real, current formula, so that's the macOS path instead of
# reaching for a macOS release asset the way lazygit's fix did.
nvim_install() { nvim_install() {
if [[ "${OS:-}" == "macos" ]]; then
brew install neovim
return
fi
local asset tarball dest local asset tarball dest
asset="$(nvim_asset)" asset="$(nvim_asset)"
tarball="/tmp/nvim-linux-${asset}.tar.gz" tarball="/tmp/nvim-linux-${asset}.tar.gz"