Skip to content

fix(bootstrap): install bash from Homebrew so the tasks run on macOS (#35) - #73

Draft
AH-Merii wants to merge 1 commit into
mainfrom
fix/bootstrap-brew-bash
Draft

AH-Merii wants to merge 1 commit into
mainfrom
fix/bootstrap-brew-bash

Conversation

@AH-Merii

@AH-Merii AH-Merii commented Sep 7, 2026

Copy link
Copy Markdown
Owner

The mise tasks are bash scripts that use mapfile, associative arrays and
${var,,}, all bash 4 features. macOS has shipped bash 3.2 since 2007 (the
last GPLv2 release), and nothing in the repo installed a newer one, so on a
fresh Mac the first task died with mapfile: command not found. It went
unnoticed because the one Mac already had a Homebrew bash from some earlier
install.

The obvious place for it is the Brewfile, but deps runs after setup and
link have already needed bash, so it would arrive too late. It is installed
by bootstrap.sh alongside git, stow, fish and mise instead, and the Brewfile
lists it too so deps keeps it current. plan.sh also checks the bash
version up front, so a missing Homebrew bash now says "these tasks need bash
4+" and how to fix it, rather than failing on an unrelated-looking builtin.

Closes #35

…35)

The mise tasks are bash 4+ scripts (mapfile, associative arrays, ${var,,}) and macOS ships bash 3.2 at /bin/bash. Nothing installed a newer one, and the Brewfile could not help: deps runs after setup and link have already died on it.

bootstrap.sh now installs bash alongside git, stow, fish and mise in its brew branch. The ordering already works: brew shellenv is evaluated before mise run setup and puts the brew prefix ahead of /bin, mise passes that PATH through to file tasks, so #!/usr/bin/env bash resolves to the new one. The Brewfile lists bash too so deps keeps it current, lib/plan.sh fails fast with a clear message instead of mapfile: command not found, and the README says so.

Closes #35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Tasks need bash 4+, but macOS ships bash 3.2 and nothing installs a newer one

1 participant