From 0be806da1ce6b5869da3021f61ae3decc7b16602 Mon Sep 17 00:00:00 2001 From: Bond_009 Date: Sat, 5 Nov 2022 17:33:42 +0100 Subject: Remove duplicates from PATH --- exports/.exports | 35 +++++++++++++++++++++++++++-------- 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" diff --git a/zsh/.zshrc b/zsh/.zshrc index 40f7fc1..fa9d898 100755 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -122,3 +122,6 @@ ZSH_AUTOSUGGEST_USE_ASYNC=1 # Exec general init script source ~/.initsh + +# Dedupe PATH +typeset -U PATH -- cgit v1.2.3