From 5dc9f2d5f7554a443f2a7595a1ed2e3872f703c1 Mon Sep 17 00:00:00 2001 From: Andre Padez Date: Thu, 27 Aug 2026 03:55:21 +0100 Subject: [PATCH] =?UTF-8?q?neovim=20had=20no=20macOS=20install=20path=20at?= =?UTF-8?q?=20all=20=E2=80=94=20it=20always=20tried=20the=20Linux=20tarbal?= =?UTF-8?q?l?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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-.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 --- scripts/setup/machine-setup/lib/dev.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/scripts/setup/machine-setup/lib/dev.sh b/scripts/setup/machine-setup/lib/dev.sh index 8333280a..d943290c 100644 --- a/scripts/setup/machine-setup/lib/dev.sh +++ b/scripts/setup/machine-setup/lib/dev.sh @@ -155,7 +155,19 @@ nvim_latest_version() { # # The old install is removed only after the download has succeeded, so a failed # fetch leaves the working copy alone. +# +# This had NO macOS branch at all until it was caught here: unconditionally fetched +# nvim-linux-.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() { + if [[ "${OS:-}" == "macos" ]]; then + brew install neovim + return + fi + local asset tarball dest asset="$(nvim_asset)" tarball="/tmp/nvim-linux-${asset}.tar.gz"