Load library in logical order

This commit is contained in:
Nick Chambers 2022-10-24 19:17:15 -05:00
parent 230b2ed959
commit 0840f2072f
8 changed files with 29 additions and 9 deletions

38
.bashrc
View File

@ -6,13 +6,13 @@ fi
# Default Environment # Default Environment
### ###
__set_PATH() { __dotlib_set_PATH() {
local path paths=("$HOME"/bin {/usr{/local,},}/{,s}bin) local path paths=("$HOME"/bin {/usr{/local,},}/{,s}bin)
printf -v path %s: "${paths[@]}" printf -v path %s: "${paths[@]}"
export PATH=${path%:} export PATH=${path%:}
} }
__set_ENV() { __dotlib_set_ENV() {
local var local var
declare -A env=( declare -A env=(
@ -27,7 +27,7 @@ __set_ENV() {
done done
} }
__set_SHOPTS() { __dotlib_set_SHOPTS() {
local shopts=( local shopts=(
{null,ext,dot}glob globstar cmdhist {null,ext,dot}glob globstar cmdhist
hostcomplete checkwinsize checkhash hostcomplete checkwinsize checkhash
@ -36,9 +36,9 @@ __set_SHOPTS() {
shopt -s "${shopts[@]}" shopt -s "${shopts[@]}"
} }
__set_PATH __dotlib_set_PATH
__set_ENV __dotlib_set_ENV
__set_SHOPTS __dotlib_set_SHOPTS
ulimit -c unlimited ulimit -c unlimited
@ -66,9 +66,29 @@ add_path() {
# Library loader # Library loader
### ###
for dot in ~/bin/dotlib/*.sh; do __dotlib_load_libraries() {
. "$dot" local os dot dots
done
case $OSTYPE in
darwin*)
os=darwin
;;
*)
os=unknown
esac
dots=(
~/bin/dotlib/generic-pre/*.sh
~/bin/dotlib/"$os"/*.sh
~/bin/dotlib/generic-post/*.sh
)
for dot in "${dots[@]}"; do
. "$dot"
done
}
__dotlib_load_libraries
### ###
# Reset exit status # Reset exit status