dotfiles/bash/bashrc

56 lines
1.5 KiB
Bash

# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# Make sure we get system-wide first
if [ -r /etc/bash.bashrc ]; then
source /etc/bash.bashrc
fi
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
# Make sure we do have profile sourced, otherwise source it
[ -z "$DOTFILES" ] && source ~/.profile
##
[ -z "$DOTFILES" ] && echo ".profile missing" && exit 1
DOTBASH="$DOTFILES/bash"
# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
source /etc/bash_completion
fi
# Load main things
if [ -d "$DOTBASH/bashrc.d" ]; then
for f in colours.bash aliases.bash history.bash prompt_command.bash password-store.bash network.bash
do
if [ -r "$DOTBASH/bashrc.d/$f" ]; then
source "$DOTBASH/bashrc.d/$f"
fi
done
fi
# Try hostname bashrcs
if [ -r "$DOTBASH/$HOSTNAME.bashrc" ]; then
source "$DOTBASH/$HOSTNAME.bashrc"
fi
# Always source a local bashrc
[ -r "$HOME/.bashrc.local" ] && source "$HOME/.bashrc.local"
# Use the local(ly linked) bashrc.private
[ -r "$HOME/.local/bashrc.private" ] && source "$HOME/.local/bashrc.private"
# Also check in .local for a bashrc
[ -r "$HOME/.local/bashrc" ] && source "$HOME/.local/bashrc"