# # .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