Skip to content

Instantly share code, notes, and snippets.

@sauloefo
Last active November 24, 2019 13:03
Show Gist options
  • Save sauloefo/a166aa2d828210667c012d344cf4068c to your computer and use it in GitHub Desktop.
Save sauloefo/a166aa2d828210667c012d344cf4068c to your computer and use it in GitHub Desktop.
My Terminal Customizations
# my-prompt-customizations
# 1. Setup my prompt
# 1.1. get current branch in git repo
function parse_git_branch() {
BRANCH=`git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'`
if [ ! "${BRANCH}" == "" ]
then
STAT=`parse_git_dirty`
echo "[${BRANCH}${STAT}]"
else
echo ""
fi
}
# 1.2. get current status of git repo
function parse_git_dirty {
status=`git status 2>&1 | tee`
dirty=`echo -n "${status}" 2> /dev/null | grep "modified:" &> /dev/null; echo "$?"`
untracked=`echo -n "${status}" 2> /dev/null | grep "Untracked files" &> /dev/null; echo "$?"`
ahead=`echo -n "${status}" 2> /dev/null | grep "Your branch is ahead of" &> /dev/null; echo "$?"`
newfile=`echo -n "${status}" 2> /dev/null | grep "new file:" &> /dev/null; echo "$?"`
renamed=`echo -n "${status}" 2> /dev/null | grep "renamed:" &> /dev/null; echo "$?"`
deleted=`echo -n "${status}" 2> /dev/null | grep "deleted:" &> /dev/null; echo "$?"`
bits=''
if [ "${renamed}" == "0" ]; then
bits=">${bits}"
fi
if [ "${ahead}" == "0" ]; then
bits="*${bits}"
fi
if [ "${newfile}" == "0" ]; then
bits="+${bits}"
fi
if [ "${untracked}" == "0" ]; then
bits="?${bits}"
fi
if [ "${deleted}" == "0" ]; then
bits="x${bits}"
fi
if [ "${dirty}" == "0" ]; then
bits="!${bits}"
fi
if [ ! "${bits}" == "" ]; then
echo " ${bits}"
else
echo ""
fi
}
function nonzero_return() {
RETVAL=$?
[ $RETVAL -ne 0 ] && echo "$RETVAL"
}
export PS1="\[\e[31;43m\]\`nonzero_return\`\[\e[m\]\[\e[36m\]\u\[\e[m\]:\[\e[33m\]\W\[\e[m\]\[\e[35m\]\`parse_git_branch\`\[\e[m\]\\$ "
# 1.3. If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
#2. Define my project folder
export prj="$HOME/Documents/projects"
cdprj() {
args="$@";
if [[ ${args::1} == "/" ]] ;
then cd $prj$args;
else cd $prj/$args;
fi
}
#3. GIT aliases/functions
alias g='git'
alias gacm='git add . && git commit -m'
alias gc='git checkout'
alias gb='git branch'
alias gush='git push'
alias gull='git pull'
alias gn='git clean'
alias gl='git log'
alias gl1='git log --oneline'
alias grb='git rebase'
alias grs='git reset'
alias gt='git status'
#4. SFDX aliases/functions
alias s='sfdx'
alias sush='sfdx force:source:push'
alias sull='sfdx force:source:pull'
alias sfol='sfdx force:org:list'
alias sfoo='sfdx force:org:open'
alias sfod='sfdx force:org:delete'
#5. Define aliases
alias reload='exec "$BASH"' # Only works on Linux (TODO: fix to Mac)
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
#6. Export Environment Variables to sign the process is running in local environment
export RUNNING_AT=local
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment