feat(mobile): the Mac role, and role-dependent plugins
Looking at the actual machine turned up something the shared plugin list could not express. The Mac loads macos, brew and dotbare; beastix and shron load archlinux. One list filtered by availability - which is what the stub did - would have dropped four plugins on the Mac without a word. Assembly moves into 05-pre-omz.zsh, which knows the role, and the availability filter stays on top of it so a plugin that is not installed still cannot produce a warning at every login. .zprofile is added, and that is the whole point of the mobile role. The Mac sets its PATH in .zshrc, so /opt/homebrew/bin exists for interactive shells and for nothing else: "ssh mac brew --version" comes back empty, which during the design phase was read as Homebrew not being installed. It is installed, with 178 formulae. Homebrew's shellenv belongs in .zprofile and now lives there; the loop is inert on Linux, where neither prefix exists. Carried over from the Mac: the Homebrew auto-update settings and bench(), which runs bench inside the ERPNext compose stack. PYTHONPATH pointed at /usr/lib/python3.9/site-packages there too - a Linux path on macOS, so doubly wrong. All three machines had a variant of that line and none of them is kept. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
39f9d11200
commit
003ba4b390
@@ -28,3 +28,25 @@ case "$ROLE" in
|
||||
zstyle ':omz:update' mode auto
|
||||
;;
|
||||
esac
|
||||
|
||||
# Plugins. Assembled here rather than in the stub because the set is
|
||||
# role-dependent: macos, brew and dotbare exist only on the Mac, archlinux only
|
||||
# where pacman does. A single shared list would have silently dropped four
|
||||
# plugins on the Mac.
|
||||
#
|
||||
# Filtered by what is actually present. Naming a plugin that is not installed
|
||||
# makes oh-my-zsh complain on every shell start, and the local custom plugin
|
||||
# signal-keyring is exactly that case on any machine other than beastix.
|
||||
_want=(git colored-man-pages colorize zsh-interactive-cd fzf)
|
||||
case "$ROLE" in
|
||||
desktop|server) _want+=(archlinux) ;;
|
||||
mobile) _want+=(macos brew dotbare) ;;
|
||||
esac
|
||||
|
||||
plugins=()
|
||||
for _p in $_want; do
|
||||
if [[ -d "$ZSH/plugins/$_p" || -d "${ZSH_CUSTOM:-$ZSH/custom}/plugins/$_p" ]]; then
|
||||
plugins+=("$_p")
|
||||
fi
|
||||
done
|
||||
unset _p _want
|
||||
|
||||
Reference in New Issue
Block a user