diff options
| -rw-r--r-- | exports/.exports | 35 | ||||
| -rwxr-xr-x | zsh/.zshrc | 3 |
2 files changed, 30 insertions, 8 deletions
diff --git a/exports/.exports b/exports/.exports index 55c1e8b..6737695 100644 --- a/exports/.exports +++ b/exports/.exports @@ -1,13 +1,29 @@ #!/bin/sh # PATH -## Set PATH so it includes user's private bin, cargos bin and dotnet if they exist -[ -d "$HOME/bin" ] && export PATH="$HOME/bin:$PATH" -[ -d "$HOME/.local/bin" ] && export PATH="$HOME/.local/bin:$PATH" -[ -d "$HOME/.cargo/bin" ] && export PATH="$HOME/.cargo/bin:$PATH" -[ -d "$HOME/dotnet" ] && export PATH="$HOME/dotnet:$PATH" && export DOTNET_ROOT="$HOME/dotnet" -[ -d "$HOME/.dotnet/tools" ] && export PATH="$HOME/.dotnet/tools:$PATH" -[ -d "$HOME/pico/pico-sdk" ] && export PICO_SDK_PATH="$HOME/pico/pico-sdk" +pathmunge () { + case ":${PATH}:" in + *:"$1":*) + ;; + *) + if [ "$2" = "after" ]; then + PATH="$PATH:$1" + else + PATH="$1:$PATH" + fi + esac +} + +## Set PATH so it includes user's private bin, cross compilers, cargos bin and dotnet if they exist +[ -d "$HOME/bin" ] && pathmunge "$HOME/bin" +[ -d "$HOME/.local/bin" ] && pathmunge "$HOME/.local/bin" +[ -d "$HOME/opt/cross/bin" ] && pathmunge "$HOME/opt/cross/bin" +[ -d "$HOME/.cargo/bin" ] && pathmunge "$HOME/.cargo/bin" +[ -d "$HOME/dotnet" ] && pathmunge "$HOME/dotnet" && export DOTNET_ROOT="$HOME/dotnet" +[ -d "$HOME/.dotnet/tools" ] && pathmunge "$HOME/.dotnet/tools" + +# Force PATH to be environment +export PATH # Colors for BSD tools export CLICOLOR=1 @@ -34,5 +50,8 @@ fi export DOTNET_CLI_TELEMETRY_OPTOUT=1 export DOTNET_NOLOGO=1 -# RUST +# Rust export RUST_BACKTRACE=1 + +# Pico SDK +[ -d "$HOME/pico/pico-sdk" ] && export PICO_SDK_PATH="$HOME/pico/pico-sdk" @@ -122,3 +122,6 @@ ZSH_AUTOSUGGEST_USE_ASYNC=1 # Exec general init script source ~/.initsh + +# Dedupe PATH +typeset -U PATH |
