mirror of
https://github.com/keanuplayz/dotfiles.git
synced 2024-08-15 02:33:12 +00:00
82 lines
2.4 KiB
Bash
82 lines
2.4 KiB
Bash
#!/usr/bin/env zsh
|
|
|
|
# tie these env variables to zsh arrays
|
|
typeset -T LDFLAGS ldflags ' '
|
|
typeset -T CPPFLAGS cppflags ' '
|
|
typeset -T PKG_CONFIG_PATH pkg_config_path ':'
|
|
|
|
# keep only unique values in these arrays
|
|
typeset -U path fpath manpath ldflags cppflags pkg_config_path
|
|
export -U PATH FPATH MANPATH LDFLAGS CPPFLAGS PKG_CONFIG_PATH
|
|
|
|
path_append() {
|
|
local arr_name="$1" value="$2"
|
|
if eval "if (( \${${arr_name}[(ie)\$value]} > \${#${arr_name}} ))"; then
|
|
eval "${arr_name}+=(\"\$value\")"
|
|
eval "${arr_name}=(\"\${${arr_name}[@]}\" \"\$value\")"
|
|
fi
|
|
}
|
|
|
|
path_prepend() {
|
|
local arr_name="$1" value="$2"
|
|
if eval "if (( \${${arr_name}[(ie)\$value]} > \${#${arr_name}} ))"; then
|
|
eval "${arr_name}=(\"\$value\" \"\${${arr_name}[@]}\")"
|
|
fi
|
|
}
|
|
|
|
if is_macos; then
|
|
path=(
|
|
~/Library/Python/*/bin
|
|
/usr/local/opt/ruby/bin
|
|
/usr/local/opt/file-formula/bin # file
|
|
/usr/local/opt/gnu-tar/libexec/gnubin # GNU tar
|
|
/usr/local/opt/unzip/bin # GNU unzip
|
|
/usr/local/opt/openssl/bin # openssl
|
|
/usr/local/opt/gnu-getopt/bin # getopt
|
|
/usr/local/opt/findutils/libexec/gnubin # GNU findutils
|
|
/usr/local/opt/coreutils/libexec/gnubin # GNU coreutils
|
|
/usr/local/opt/curl/bin # curl
|
|
"${path[@]}"
|
|
)
|
|
|
|
manpath=(
|
|
/usr/local/opt/findutils/libexec/gnuman # GNU findutils
|
|
"${manpath[@]}"
|
|
)
|
|
|
|
for formula in ruby openssl curl; do
|
|
formula_path="/usr/local/opt/$formula"
|
|
if [[ -d "$formula_path" ]]; then
|
|
ldflags+=( -L"$formula_path"/lib )
|
|
cppflags+=( -L"$formula_path"/include )
|
|
pkg_config_path+=( "$formula_path"/lib/pkgconfig )
|
|
fi
|
|
done
|
|
fi
|
|
|
|
# Yarn global packages
|
|
path=(~/.yarn/bin "${path[@]}")
|
|
|
|
# Go
|
|
export GOPATH=~/.go
|
|
path=("$GOPATH/bin" "${path[@]}")
|
|
|
|
# Rust
|
|
path=(~/.cargo/bin "${path[@]}")
|
|
# check if the Rust toolchain was installed via rustup
|
|
if rustup_home="$(rustup show home 2> /dev/null)" &&
|
|
rust_sysroot="$(rustc --print sysroot 2> /dev/null)" &&
|
|
[[ -d "$rustup_home" && -d "$rust_sysroot" && "$rust_sysroot" == "$rustup_home"/* ]]
|
|
then
|
|
# add paths of the selected Rust toolchain
|
|
fpath=("$rust_sysroot/share/zsh/site-functions" "${fpath[@]}")
|
|
manpath=("$rust_sysroot/share/man" "${manpath[@]}")
|
|
fi
|
|
unset rustup_home rust_sysroot
|
|
|
|
# add my binaries and completions
|
|
path=("${ZSH_DOTFILES:h}/scripts" "${path[@]}")
|
|
fpath=("$ZSH_DOTFILES/completions" "${fpath[@]}")
|
|
|
|
# add user binaries
|
|
path=(~/.local/bin "${path[@]}")
|