72 lines
1 KiB
Bash
72 lines
1 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
|