From 0840f2072f1cc88c407b8faa4b618f0a646ad7ca Mon Sep 17 00:00:00 2001 From: Nick Chambers Date: Mon, 24 Oct 2022 19:17:15 -0500 Subject: [PATCH] Load library in logical order --- .bashrc | 38 ++++++++++++++++++++++------- dotlib/{ => darwin}/homebrew.sh | 0 dotlib/{ => darwin}/iterm2.sh | 0 dotlib/{ => generic-post}/cattle.sh | 0 dotlib/{ => generic-post}/ruby.sh | 0 dotlib/{ => generic-post}/tab.sh | 0 dotlib/{ => generic-post}/util.sh | 0 dotlib/{ => generic-pre}/prompt.sh | 0 8 files changed, 29 insertions(+), 9 deletions(-) rename dotlib/{ => darwin}/homebrew.sh (100%) rename dotlib/{ => darwin}/iterm2.sh (100%) rename dotlib/{ => generic-post}/cattle.sh (100%) rename dotlib/{ => generic-post}/ruby.sh (100%) rename dotlib/{ => generic-post}/tab.sh (100%) rename dotlib/{ => generic-post}/util.sh (100%) rename dotlib/{ => generic-pre}/prompt.sh (100%) diff --git a/.bashrc b/.bashrc index f404264..66543c0 100644 --- a/.bashrc +++ b/.bashrc @@ -6,13 +6,13 @@ fi # Default Environment ### -__set_PATH() { +__dotlib_set_PATH() { local path paths=("$HOME"/bin {/usr{/local,},}/{,s}bin) printf -v path %s: "${paths[@]}" export PATH=${path%:} } -__set_ENV() { +__dotlib_set_ENV() { local var declare -A env=( @@ -27,7 +27,7 @@ __set_ENV() { done } -__set_SHOPTS() { +__dotlib_set_SHOPTS() { local shopts=( {null,ext,dot}glob globstar cmdhist hostcomplete checkwinsize checkhash @@ -36,9 +36,9 @@ __set_SHOPTS() { shopt -s "${shopts[@]}" } -__set_PATH -__set_ENV -__set_SHOPTS +__dotlib_set_PATH +__dotlib_set_ENV +__dotlib_set_SHOPTS ulimit -c unlimited @@ -66,9 +66,29 @@ add_path() { # Library loader ### -for dot in ~/bin/dotlib/*.sh; do - . "$dot" -done +__dotlib_load_libraries() { + local os dot dots + + 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 diff --git a/dotlib/homebrew.sh b/dotlib/darwin/homebrew.sh similarity index 100% rename from dotlib/homebrew.sh rename to dotlib/darwin/homebrew.sh diff --git a/dotlib/iterm2.sh b/dotlib/darwin/iterm2.sh similarity index 100% rename from dotlib/iterm2.sh rename to dotlib/darwin/iterm2.sh diff --git a/dotlib/cattle.sh b/dotlib/generic-post/cattle.sh similarity index 100% rename from dotlib/cattle.sh rename to dotlib/generic-post/cattle.sh diff --git a/dotlib/ruby.sh b/dotlib/generic-post/ruby.sh similarity index 100% rename from dotlib/ruby.sh rename to dotlib/generic-post/ruby.sh diff --git a/dotlib/tab.sh b/dotlib/generic-post/tab.sh similarity index 100% rename from dotlib/tab.sh rename to dotlib/generic-post/tab.sh diff --git a/dotlib/util.sh b/dotlib/generic-post/util.sh similarity index 100% rename from dotlib/util.sh rename to dotlib/generic-post/util.sh diff --git a/dotlib/prompt.sh b/dotlib/generic-pre/prompt.sh similarity index 100% rename from dotlib/prompt.sh rename to dotlib/generic-pre/prompt.sh