Last active
November 24, 2019 13:03
-
-
Save sauloefo/a166aa2d828210667c012d344cf4068c to your computer and use it in GitHub Desktop.
My Terminal Customizations
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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