Files
.dotfiles/zsh/.config/zsh/config/bin.zsh
T

49 lines
1.3 KiB
Bash

#!/usr/bin/env zsh
local brew_prefix="${HOMEBREW_PREFIX:-}"
# `brew --prefix` costs ~12 ms because it runs Ruby. Check the standard
# Apple Silicon location first, then fall back for anything else.
if [[ -z "$brew_prefix" ]]; then
[[ -x /opt/homebrew/bin/brew ]] && brew_prefix=/opt/homebrew
fi
if [[ -z "$brew_prefix" ]] && command -v brew >/dev/null 2>&1; then
brew_prefix="$(brew --prefix 2>/dev/null)"
fi
if [[ -n "$brew_prefix" ]]; then
gnu_tools=(
"coreutils"
"findutils"
"gnu-tar"
"gnu-sed"
"gawk"
"gnu-indent"
"grep"
)
if [[ -n "$XDG_BIN_HOME" ]] && mkdir -p "$XDG_BIN_HOME"; then
for tool in $gnu_tools; do
gnubin="$brew_prefix/opt/$tool/libexec/gnubin"
if [[ -d "$gnubin" ]]; then
for bin in "$gnubin"/*(N); do
target="$XDG_BIN_HOME/${bin:t}"
[[ "$target" -ef "$bin" ]] || ln -sf "$bin" "$target"
done
fi
done
fi
fi
local bin_paths=(
"$XDG_BIN_HOME"
"${brew_prefix:+$brew_prefix/opt/gnu-getopt/bin}"
)
for bin_path in "${bin_paths[@]}"; do
if [[ -d "$bin_path" ]]; then
case ":$PATH:" in
*":$bin_path:"*) ;;
*) path=("$bin_path" $path) ;;
esac
fi
done