mirror of
https://github.com/opensiriusfox/bashrc.d.git
synced 2025-06-16 20:31:15 -07:00
112 lines
3.3 KiB
Bash
112 lines
3.3 KiB
Bash
#!/bin/bash
|
|
#####################################################################
|
|
# If we have a path element, strip it then add it in the new location
|
|
#####################################################################
|
|
function pathStripAdd() {
|
|
pathStrip "$1"
|
|
if [[ "$2" == "front" ]]; then
|
|
export PATH="${1}":"$PATH"
|
|
else
|
|
export PATH="$PATH":"${1}"
|
|
fi
|
|
}
|
|
|
|
function pathStrip() {
|
|
unset PATH2
|
|
# Iterate through each item of path.
|
|
# Keep items if they don't match argument $1
|
|
for p in ${PATH//:/ }; do
|
|
if [[ $p != *$1* ]] ; then
|
|
PATH2="${PATH2:-}":"$p"
|
|
#echo $PATH2
|
|
fi
|
|
done
|
|
export PATH="${PATH2:1}"
|
|
unset PATH2
|
|
}
|
|
|
|
#####################################################################
|
|
# A function to load enviornment variables
|
|
#####################################################################
|
|
function loadDirectory() {
|
|
DIR_EXPAND=$(readlink -f "$1")
|
|
if [ -d "$DIR_EXPAND" ] ; then
|
|
if [ -d "$DIR_EXPAND/bin" ] ; then
|
|
pathStripAdd "$DIR_EXPAND/bin" "$2"
|
|
fi
|
|
if [ -d "$DIR_EXPAND/lib" ] ; then
|
|
export LD_RUN_PATH="$DIR_EXPAND/lib:$LD_RUN_PATH"
|
|
export LD_LIBRARY_PATH="$DIR_EXPAND/lib:$LD_LIBRARY_PATH"
|
|
|
|
if [ -d "$DIR_EXPAND/lib/pkgconfig" ] ; then
|
|
export PKG_CONFIG_PATH="$DIR_EXPAND/lib/pkgconfig:$PKG_CONFIG_PATH"
|
|
fi
|
|
fi
|
|
if [ -d "$DIR_EXPAND/share/pkgconfig" ] ; then
|
|
export PKG_CONFIG_PATH="$DIR_EXPAND/share/pkgconfig:$PKG_CONFIG_PATH"
|
|
fi
|
|
if [ -d "$DIR_EXPAND/share/aclocal" ] ; then
|
|
export ACLOCAL_FLAGS="-I $DIR_EXPAND/share/aclocal $ACLOCAL_FLAGS"
|
|
fi
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
###########
|
|
# set PATH so it includes user's private bin if it exists
|
|
if [ -d "$HOME/bin" ] ; then
|
|
pathStripAdd "$HOME/bin" front
|
|
fi
|
|
if [ -d "$HOME/.bin" ] ; then
|
|
pathStripAdd "$HOME/.bin" front
|
|
fi
|
|
|
|
# And load the local directory
|
|
if [ -d "$HOME/.local" ] ; then
|
|
loadDirectory "$HOME/.local" front
|
|
# Set the data directory
|
|
if [ -d "$HOME/.local/share" ] ; then
|
|
export XDG_DATA_HOME="$HOME/.local/share"
|
|
fi
|
|
fi
|
|
|
|
# Load information that is in any extra random installed directory.
|
|
__LOAD_DIRS=(/opt/fpga /opt/makemkv /opt/icestorm)
|
|
for DIR_EXPAND in ${__LOAD_DIRS[*]}; do
|
|
loadDirectory $DIR_EXPAND
|
|
done
|
|
unset DIR_EXPAND __LOAD_DIRS
|
|
|
|
## This block was a legacy bit from when I spent so much time screwing around
|
|
# with Macports and had really janky enviornment varables. I don't need this
|
|
# anymore because the loader is now mature enough to not randomly throw garbage
|
|
# into the enviornment variables. This code is left simply for legacy purposes
|
|
# as an example of what you end up writing if you really have no idea what your
|
|
# doing (also known as learning!).
|
|
## CLEAN these variables
|
|
#__VAR_PTR_LST=(PKG_CONFIG_PATH LD_RUN_PATH LD_LIBRARY_PATH)
|
|
#for __VAR_PTR in ${__VAR_PTR_LST[*]}
|
|
#do
|
|
# # get the value in the pointer
|
|
# eval __VAR_VAL=\$$__VAR_PTR
|
|
# if [ ${#__VAR_VAL} -gt 0 ]; then
|
|
# # Strip ending : or leading : if exists.
|
|
# if [ ${__VAR_VAL: -1} == ":" ]; then
|
|
# __VAR_VAL=${__VAR_VAL:0:-1}
|
|
# fi
|
|
# if [ ${__VAR_VAL:0:1} == ":" ]; then
|
|
# __VAR_VAL=${__VAR_VAL:1}
|
|
# fi
|
|
# while [[ $__VAR_VAL == *"::"* ]]; do
|
|
# __VAR_VAL=${__VAR_VAL/::/:}
|
|
# done
|
|
# while [[ $__VAR_VAL == *"/:"* ]]; do
|
|
# __VAR_VAL=${__VAR_VAL/\/:/:}
|
|
# done
|
|
# # save the cleaned result
|
|
# eval $__VAR_PTR=$__VAR_VAL
|
|
# #echo $__VAR_PTR "=" $__VAR_VAL
|
|
# fi
|
|
#done
|
|
#unset __VAR_PTR_LST __VAR_PTR __VAR_VAL
|