summaryrefslogtreecommitdiff
path: root/git-aware-prompt/prompt.sh
diff options
context:
space:
mode:
Diffstat (limited to 'git-aware-prompt/prompt.sh')
-rw-r--r--git-aware-prompt/prompt.sh32
1 files changed, 32 insertions, 0 deletions
diff --git a/git-aware-prompt/prompt.sh b/git-aware-prompt/prompt.sh
new file mode 100644
index 0000000..6a737b8
--- /dev/null
+++ b/git-aware-prompt/prompt.sh
@@ -0,0 +1,32 @@
+find_git_branch() {
+ # Based on: http://stackoverflow.com/a/13003854/170413
+ local branch
+ if branch=$(git rev-parse --abbrev-ref HEAD 2> /dev/null); then
+ if [[ "$branch" == "HEAD" ]]; then
+ branch='detached*'
+ fi
+ git_branch="($branch)"
+ else
+ git_branch=""
+ fi
+}
+
+find_git_dirty() {
+ local status=$(git status --porcelain 2> /dev/null)
+ if [[ "$status" != "" ]]; then
+ git_dirty='*'
+ else
+ git_dirty=''
+ fi
+}
+
+PROMPT_COMMAND="find_git_branch; find_git_dirty; $PROMPT_COMMAND"
+
+# Default Git enabled prompt with dirty state
+# export PS1="\u@\h \w \[$txtcyn\]\$git_branch\[$txtred\]\$git_dirty\[$txtrst\]\$ "
+
+# Another variant:
+# export PS1="\[$bldgrn\]\u@\h\[$txtrst\] \w \[$bldylw\]\$git_branch\[$txtcyn\]\$git_dirty\[$txtrst\]\$ "
+
+# Default Git enabled root prompt (for use with "sudo -s")
+# export SUDO_PS1="\[$bakred\]\u@\h\[$txtrst\] \w\$ "