summaryrefslogtreecommitdiff
path: root/lib/git.zsh
diff options
context:
space:
mode:
Diffstat (limited to 'lib/git.zsh')
-rw-r--r--lib/git.zsh25
1 files changed, 25 insertions, 0 deletions
diff --git a/lib/git.zsh b/lib/git.zsh
new file mode 100644
index 000000000..9409c92db
--- /dev/null
+++ b/lib/git.zsh
@@ -0,0 +1,25 @@
+# Varables for themeing the git info prompt:
+# ZSH_THEME_GIT_PROMPT_PREFIX - Prefix at the very beginning of the prompt, before the branch name
+# ZSH_THEME_GIT_PROMPT_SUFFIX - At the very end of the prompt
+# ZSH_THEME_GIT_PROMPT_DIRTY - Text to display if the branch is dirty
+# ZSH_THEME_GIT_PROMPT_CLEAN - Text to display if the branch is clean
+
+ZSH_THEME_GIT_PROMPT_PREFIX="git:("
+ZSH_THEME_GIT_PROMPT_SUFFIX=")"
+ZSH_THEME_GIT_PROMPT_DIRTY="*"
+ZSH_THEME_GIT_PROMPT_CLEAN=""
+
+# get the name of the branch we are on
+function git_prompt_info() {
+ ref=$(git symbolic-ref HEAD 2> /dev/null) || return
+ echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX"
+}
+
+parse_git_dirty () {
+ if [[ $(git status | tail -n1) != "nothing to commit (working directory clean)" ]]; then
+ echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
+ else
+ echo "$ZSH_THEME_GIT_PROMPT_CLEAN"
+ fi
+}
+