[zsh] added functions to manage path
This commit is contained in:
parent
9f1a61fd17
commit
97f9e9a0a5
1 changed files with 47 additions and 12 deletions
|
@ -1,3 +1,35 @@
|
||||||
|
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 EDITOR=nvim
|
||||||
export VISUAL=nvim
|
export VISUAL=nvim
|
||||||
export READER=mupdf
|
export READER=mupdf
|
||||||
|
@ -15,19 +47,22 @@ export GOBIN="$GOPATH/bin"
|
||||||
if [[ $(uname) == "Darwin" ]]; then
|
if [[ $(uname) == "Darwin" ]]; then
|
||||||
export JAVA_HOME=$(/usr/libexec/java_home)
|
export JAVA_HOME=$(/usr/libexec/java_home)
|
||||||
export GEM_HOME=$HOME/.gem
|
export GEM_HOME=$HOME/.gem
|
||||||
export PATH="/opt/homebrew/bin:$PATH"
|
prepend_path PATH "/opt/homebrew/bin"
|
||||||
export PATH="/opt/homebrew/opt/texlive/bin:$PATH"
|
prepend_path PATH "/opt/homebrew/opt/texlive/bin"
|
||||||
export PATH=$PATH:$GEM_HOME/bin
|
append_path PATH $GEM_HOME/bin
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
#BOTH
|
#BOTH
|
||||||
export PATH="/usr/sbin:/sbin:$PATH"
|
append_path PATH "/usr/sbin:/sbin"
|
||||||
export PATH="$HOME/.local/share/nvim/mason/bin:$PATH"
|
append_path PATH "$HOME/.local/share/nvim/mason/bin"
|
||||||
export PATH="$HOME/.local/bin:$PATH"
|
append_path PATH "$HOME/.local/bin"
|
||||||
export PATH="$HOME/go/bin:$PATH"
|
append_path PATH "$HOME/go/bin"
|
||||||
export PATH="$HOME/.cargo/bin:$PATH"
|
append_path PATH "$HOME/.ghcup/bin"
|
||||||
export PATH="$HOME/.ghcup/bin:$PATH"
|
append_path PATH "$HOME/.cabal/bin"
|
||||||
export PATH="$HOME/.cabal/bin:$PATH"
|
append_path PATH "$HOME/.cargo/bin"
|
||||||
|
for bindir in ~/opt/*/bin(N); do
|
||||||
|
if [[ -d "$bindir" ]]; then
|
||||||
|
prepend_path PATH "$bindir"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
. "$HOME/.cargo/env"
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue