Coexist with a desktop that already manages its tools (Omarchy)
On an Omarchy laptop bootstrap left two of almost everything: VS Code from both pacman and the tarball (two menu entries, one shared ~/.config/Code profile), and kubectl/helm/k9s/kubectx/yq/jq/node/ansible in ~/.local/bin behind mise and pacman copies that always won on PATH. The zsh helpers (op*, grmb, secrets.env) also never reached the bash login shell. - lib/fetch.sh: add `shadowed`, true when another copy of a tool comes earlier on PATH than ~/.local/bin. Always false where zshrc puts ~/.local/bin first, so VM installs are unchanged. - bin/, node/, ansible/: skip tools that are shadowed. - vscode/: defer to any system `code`, and remove a tarball copy this module installed earlier. - bash/: new module; bash port of the zshrc helpers, sourced from ~/.bashrc via a marked block. No-ops without ~/.bashrc. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -15,6 +15,8 @@ REPO_ROOT="$(dirname -- "$SCRIPT_DIR")"
|
||||
|
||||
# shellcheck source=../lib/os-detect.sh
|
||||
. "$REPO_ROOT/lib/os-detect.sh"
|
||||
# shellcheck source=../lib/fetch.sh
|
||||
. "$REPO_ROOT/lib/fetch.sh"
|
||||
|
||||
say() { printf '%s\n' "$*" >&2; }
|
||||
|
||||
@@ -22,6 +24,13 @@ VENV="$HOME/.local/opt/ansible"
|
||||
BIN_DIR="$HOME/.local/bin"
|
||||
ANSIBLE_CLIS="ansible ansible-playbook ansible-galaxy ansible-vault ansible-config ansible-doc ansible-inventory ansible-console ansible-pull"
|
||||
|
||||
# Another ansible (mise, pipx, a distro package) already wins on PATH, so this
|
||||
# venv would never run -- see `shadowed` in lib/fetch.sh.
|
||||
if _winner="$(shadowed ansible)"; then
|
||||
say "ansible: $_winner comes first on PATH; skipping (a copy in $BIN_DIR would never run)."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Verify it actually runs, not just that the file exists: a Kasm redeploy can
|
||||
# wipe the system python3 the venv links to, leaving a present-but-broken
|
||||
# venv that must be rebuilt.
|
||||
|
||||
Reference in New Issue
Block a user