dotfiles/.bashrc

72 lines
1.0 KiB
Bash

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