dotfiles/.config/zsh/.zshenv

68 lines
1.5 KiB
Bash

function remove_from_path() {
local a
local p
local s
local r
eval "p=\$$1"
a=( ${(s/:/)p} )
if [[ ${a[(i)${2}]} -gt ${#a} ]] && return
for s in $a; do
if [[ ! $s == $2 ]]; then
[[ -z "$r" ]] && r=$s || r="$r:$s"
fi
done
eval $1="$r"
}
function prepend_path() {
[[ ! -d "$2" ]] && return
local p
remove_from_path "$1" "$2"
eval "p=\$$1"
eval export $1="$2:$p"
}
function append_path() {
[[ ! -d "$2" ]] && return
local p
remove_from_path "$1" "$2"
eval "p=\$$1"
eval export $1="$p:$2"
}
export EDITOR=nvim
export VISUAL=nvim
export READER=mupdf
export XDG_CONFIG_HOME="${HOME}/.config"
export XDG_CACHE_HOME="${HOME}/.cache"
export XDG_DATA_HOME="${HOME}/.local/share"
export XDG_STATE_HOME="${HOME}/.local/state"
export XDG_RUNTIME_DIR=/tmp
export GOPATH="$HOME/go"
export GOBIN="$GOPATH/bin"
# OS-specific exports
if [[ $(uname) == "Darwin" ]]; then
export JAVA_HOME=$(/usr/libexec/java_home)
export GEM_HOME=$HOME/.gem
prepend_path PATH "/opt/homebrew/bin"
prepend_path PATH "/opt/homebrew/opt/texlive/bin"
append_path PATH $GEM_HOME/bin
fi
#BOTH
append_path PATH "/usr/sbin:/sbin"
append_path PATH "$HOME/.local/share/nvim/mason/bin"
append_path PATH "$HOME/.local/bin"
append_path PATH "$HOME/go/bin"
append_path PATH "$HOME/.ghcup/bin"
append_path PATH "$HOME/.cabal/bin"
append_path PATH "$HOME/.cargo/bin"
for bindir in ~/opt/*/bin(N); do
if [[ -d "$bindir" ]]; then
prepend_path PATH "$bindir"
fi
done