# ALWAYS RUN
# ==========
# things to always set up, even for non-interactive shells

# Fuck vi!
EDITOR=nano
# On FreeBSD this is being set for whatever reason in the other shell rc files. I'll leave it here for compatibility.
PAGER=less
# add a user-specific bin directory to PATH
PATH=$HOME/.local/bin:$PATH
export EDITOR PAGER PATH

# CHECK INTERACTIVE
# =================
# Don't do anything after this if not running an interactive shell.
case $- in
    *i*) ;;
      *) return ;;
esac

# ALIASES
# =======
alias aliases="nano $HOME/.bashrc_aliases && source $HOME/.bashrc_aliases"
[ -f $HOME/.bashrc_aliases ] && source $HOME/.bashrc_aliases

# BASH COMPLETION
# ===============
# include bash completions if they exist
# (may need to be adjusted to where the bash completions are stored on the current system)

# Default for FreeBSD:
if [ -f /usr/local/share/bash-completion/bash_completion.sh ]; then
    source /usr/local/share/bash-completion/bash_completion.sh
# Default for Linux:
elif [ -f /usr/share/bash-completion/bash_completion ]; then
    source /usr/share/bash-completion/bash_completion
fi

# VARIABLES
# =========

# don't put duplicate lines or lines starting with a space in history
HISTCONTROL=ingnoreboth
# unlimited history
HISTSIZE=-1
HISTFILESIZE=-1
# set a fancy prompt
PROMPT_COMMAND="PS1=\"[\[\e[03$(
    if [ $EUID -eq 0 ]
    then
        echo -n '1;02m'
    else
        if [ -n "$(groups | grep 'wheel\|sudo')" ];
        then
            echo -n '2;01m'
        else
            echo -n '6;01m'
       fi
    fi
)\]\u@\h\[\e[0m\]]:\$(
    PROMPT_ERRORLEVEL=\$?
    if [ \$PROMPT_ERRORLEVEL -eq 0 ]
    then
        echo -n '\[\e[032;02m\]'
    else
        echo -n '\[\e[031;02m\]'
    fi
    echo -n \$PROMPT_ERRORLEVEL
    echo -n '\[\e[00m\]'
):\[\e[034;01m\]\$(pwd)\[\e[0m\]:$(
    if [ $EUID -eq 0 ]
    then
        echo -n '\[\e[02m\]#\[\e[0m\]'
    else
        echo -n '\[\e[02m\]$\[\e[0m\]'
    fi
)> \""

# SHELL OPTIONS
# =============
shopt -s histappend
shopt -s checkwinsize
shopt -s globstar