#
# .bash_profile
#
# @author Jeff Geerling
# @see .inputrc
#

# Colors.
unset LSCOLORS
export CLICOLOR=1
export CLICOLOR_FORCE=1

# Nicer prompt.
PS1="%F{green} %*%F %3~ %F{white}$ "

# Custom $PATH with extra locations.
#export PATH=/usr/local/bin:/usr/local/sbin:$HOME/bin:/usr/local/git/bin:$HOME/.composer/vendor/bin:$PATH

# Include alias file (if present) containing aliases for ssh, etc.
if [ -f ~/.bash_aliases ]
then
  source ~/.bash_aliases
fi

# Git aliases.
alias gs='git status'
alias gc='git commit'
alias gp='git pull --rebase'
alias gcam='git commit -am'
alias gl='git log --graph --pretty=format:"%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset" --abbrev-commit'

# Completions.
autoload -Uz compinit && compinit
# Case insensitive.
zstyle ':completion:*' matcher-list 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*'

# Git upstream branch syncer.
# Usage: gsync master (checks out master, pull upstream, push origin).
#function gsync() {
#  if [[ ! "$1" ]] ; then
#      echo "You must supply a branch."
#      return 0
#  fi
#
#  BRANCHES=$(git branch --list $1)
#  if [ ! "$BRANCHES" ] ; then
#     echo "Branch $1 does not exist."
#     return 0
#  fi
#
#  git checkout "$1" && \
#  git pull upstream "$1" && \
#  git push origin "$1"
#}

# Tell homebrew to not autoupdate every single time I run it (just once a week).
#export HOMEBREW_AUTO_UPDATE_SECS=604800

# Turn on Git autocomplete.
# brew_prefix=`brew --prefix`
#brew_prefix='/usr/local'
#if type brew &>/dev/null; then
#  FPATH=$brew_prefix/share/zsh/site-functions:$FPATH
#fi

# Turn on kubectl autocomplete.
#if [ -x "$(command -v kubectl)" ]; then
#  source <(kubectl completion bash)
#fi

# Use brew-installed PHP binaries.
#export PATH="/usr/local/opt/php@7.2/bin:$PATH"
#export PATH="/usr/local/opt/php@7.2/sbin:$PATH"

# Python settings.
#export PYTHONPATH="/usr/local/lib/python2.7/site-packages"

# Super useful Docker container oneshots.
# Usage: dockrun, or dockrun [centos7|fedora27|debian9|debian8|ubuntu1404|etc.]
#dockrun() {
#  docker run -it geerlingguy/docker-"${1:-ubuntu1604}"-ansible /bin/bash
#}

# Enter a running Docker container.
#function denter() {
#  if [[ ! "$1" ]] ; then
#      echo "You must supply a container ID or name."
#      return 0
#  fi
#
#  docker exec -it $1 bash
#  return 0
#}

# Delete a given line number in the known_hosts file.
#knownrm() {
#  re='^[0-9]+$'
#  if ! [[ $1 =~ $re ]] ; then
#    echo "error: line number missing" >&2;
#  else
#    sed -i '' "$1d" ~/.ssh/known_hosts
#  fi
#}

# Ask for confirmation when 'prod' is in a command string.
#prod_command_trap () {
#  if [[ $BASH_COMMAND == *prod* ]]
#  then
#    read -p "Are you sure you want to run this command on prod [Y/n]? " -n 1 -r
#    if [[ $REPLY =~ ^[Yy]$ ]]
#    then
#      echo -e "\nRunning command \"$BASH_COMMAND\" \n"
#    else
#      echo -e "\nCommand was not run.\n"
#      return 1
#    fi
#  fi
#}
#shopt -s extdebug
#trap prod_command_trap DEBUG
