diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..8e09d58 --- /dev/null +++ b/TODO.md @@ -0,0 +1,10 @@ +TODO +==== + +* [ ] prompt git shows version with `+` when there is more than one commit over current version. ie: v-1.0.0 + 2 commits more should display v-1.0.0+ +* [ ] semver_git_tag should append `RELEASE_NOTES.md` from this TODO markdown file, providing that NEW NOTE section below contains appropriate items to fulfill the current release note + * [ ] git log ..HEAD --oneline + +NEW NOTE +======== + diff --git a/bash.bashrc b/bash.bashrc index fa2b1ec..9df4056 100644 --- a/bash.bashrc +++ b/bash.bashrc @@ -6,12 +6,15 @@ function __prompt_command { local R='\[\e[0m\]' local Red='\[\e[31m\]' local Gre='\[\e[32m\]' - local Yel='\[\e[33m\]' + local Yel='\[\e[93m\]' local Blu='\[\e[34m\]' local Cya='\[\e[36m\]' local Mag='\[\e[95m\]' local Gra='\[\e[90m\]' + local DIVERGENT_GIT_SYMBOL="${Yel}➾${R}" + local SYNCHRONIZED_GIT_SYMBOL="${Gre}✔${R}" + # set xterm title echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007" @@ -65,6 +68,7 @@ function __prompt_command { if git rev-parse --git-dir >/dev/null 2>&1; then # current dir is version controlled + local branch tag_release dirty branch=$(git branch 2>/dev/null | grep -e ^* | cut -d ' ' -f2) PS1+=" ${R}[${Mag}${branch}${R}|" @@ -72,16 +76,25 @@ function __prompt_command { tag_release=$(git describe --tags 2>/dev/null | cut -d'-' -f1) dirty=$(git status -s | wc -l) if [[ $dirty -ne 0 ]]; then - PS1+="⚡|${tag_release}${Yel}…$dirty" + PS1+="${Yel}${DIVERGENT_GIT_SYMBOL}${R}|${tag_release}${Yel}…$dirty" else - local ahead=$(git rev-list --branches --not --remotes | wc -l) + local ahead + ahead=$(git rev-list --branches --not --remotes | wc -l) + if [[ $ahead -ne 0 ]]; then - PS1+="⚡|${tag_release}${Cya}↑${ahead}" + PS1+="${DIVERGENT_GIT_SYMBOL}|${tag_release}${Cya}↶${ahead}" else if [[ -z $tag_release ]]; then - PS1+="${Blu}✔" + PS1+="${SYNCHRONIZED_GIT_SYMBOL}" else - PS1+="${Gre}✔${R}|${Blu}${tag_release}" + local commit_ahead + commit_ahead=$(git log "$tag_release"..HEAD --oneline | wc -l) + + if [[ $commit_ahead -gt 0 ]]; then + PS1+="${DIVERGENT_GIT_SYMBOL}|${tag_release}${Yel}↟${commit_ahead}" + else + PS1+="${SYNCHRONIZED_GIT_SYMBOL}|${Cya}${tag_release}" + fi fi fi fi