if [[ $- != *i* ]]; then return fi ### # Default Environment ### __set_PATH() { local path paths=("$HOME"/bin {/usr{/local,},}/{,s}bin) printf -v path %s: "${paths[@]}" export PATH=${path%:} } __set_ENV() { local var declare -A env=( [EDITOR]=nano [PAGER]=less [LESSHISTFILE]=- [HISTCONTROL]=ignoreboth ) for var in "${!env[@]}"; do export "$var"="${env[$var]}" done } __set_SHOPTS() { local shopts=( {null,ext,dot}glob globstar cmdhist hostcomplete checkwinsize checkhash ) shopt -s "${shopts[@]}" } __set_PATH __set_ENV __set_SHOPTS ulimit -c unlimited ### # Search Path Manager ### add_path() { local path paths path_list=( ) declare -A uniq_paths IFS=: read -ra paths <<< "$PATH" for path in "$@" "${paths[@]}"; do if [[ ! -v uniq_paths[$path] ]]; then uniq_paths[$path]=42 path_list+=("$path") fi done printf -v path %s: "${path_list[@]}" export PATH=${path%:} } ### # Library loader ### for dot in ~/bin/dotlib/*.sh; do . "$dot" done