#!/usr/bin/env bash # shellcheck disable=SC2154 cd "${HOME:?}/.bashrc.d" || ( echo ":: Can't cd into ${HOME:?}/.bashrc.d" exit 1 ) # Create new configuration file [[ ! -f "config.sh" ]] && cat << EOF >> config.sh #!/usr/bin/env bash CONFIG_FLOW_CONTROL=0 CONFIG_AUTOSAVE_HISTORY=1 CONFIG_CUSTOM_PROMPT=1 CONFIG_EDITOR=nano CONFIG_REPLACE_PKGMGR_ORIGINAL=pacman CONFIG_REPLACE_PKGMGR_REPLACEMENT=paru EOF # Load configuration file source "config.sh" # Initialize basic stuff [[ -f "init.d/variables.sh" ]] && source "init.d/variables.sh" [[ -f "init.d/aliases.sh" ]] && source "init.d/aliases.sh" [[ -f "init.d/functions.sh" ]] && source "init.d/functions.sh" # Process configuration changes # -> Flow control [[ "${CONFIG_FLOW_CONTROl}" == "0" ]] && stty -ixon [[ "${CONFIG_FLOW_CONTROL}" == "1" ]] && stty ixon # -> Autosave history [[ "${CONFIG_AUTOSAVE_HISTORY}" == "1" ]] && export "PROMPT_COMMAND=history -a" # -> Custom prompt if [[ "${CONFIG_CUSTOM_PROMPT}" == "1" ]]; then export "PS1=\[\033[38;5;33m\][\[$(tput sgr0)\]\[\033[38;5;38m\]\u\[$(tput sgr0)\]\[\033[38;5;33m\]@\[$(tput sgr0)\]\[\033[38;5;38m\]\H\[$(tput sgr0)\]\[\033[38;5;33m\]:\[$(tput sgr0)\]\[\033[38;5;38m\]\W\[$(tput sgr0)\] \[$(tput sgr0)\]\[\033[38;5;214m\]\$?\[$(tput sgr0)\]\[\033[38;5;33m\]]\\$\[$(tput sgr0)\] " export "PS2=\[\033[38;5;196m\][incomplete]: \033[0;10m" export "PS4=\${0}:\${LINENO}+ " fi # -> Editor export "EDITOR=${CONFIG_EDITOR}" # -> Package manager replacement if [ -n "${CONFIG_REPLACE_PKGMGR_ORIGINAL}" ] && [ -n "${CONFIG_REPLACE_PKGMGR_REPLACEMENT}" ]; then # shellcheck disable=SC2139 alias "${CONFIG_REPLACE_PKGMGR_ORIGINAL}=${CONFIG_REPLACE_PKGMGR_REPLACEMENT}" fi # Initialize shell programs for file in programs.d/*; do # shellcheck disable=SC1090 source "${file}" done # Run startup scripts for file in startup.d/*; do # shellcheck disable=SC1090 source "${file}" done