summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew vonderLuft <avonderluft@avlux.net>2014-03-07 11:17:18 -0800
committerAndrew vonderLuft <avonderluft@avlux.net>2014-03-14 13:17:03 -0700
commit8f7971349b653706071bc41e2fdb953bb6f22678 (patch)
treeeab26c15b0227a0e56a783a1bd02b88d80f1a265
parent6b3c9537754b4a2180648258341ae2d7ca203d1e (diff)
downloadzsh-8f7971349b653706071bc41e2fdb953bb6f22678.tar.gz
zsh-8f7971349b653706071bc41e2fdb953bb6f22678.tar.bz2
zsh-8f7971349b653706071bc41e2fdb953bb6f22678.zip
add option to show dirty status of current dir
-rw-r--r--plugins/svn/svn.plugin.zsh21
1 files changed, 20 insertions, 1 deletions
diff --git a/plugins/svn/svn.plugin.zsh b/plugins/svn/svn.plugin.zsh
index 4f008ba4e..ef6da5bd3 100644
--- a/plugins/svn/svn.plugin.zsh
+++ b/plugins/svn/svn.plugin.zsh
@@ -9,7 +9,7 @@ function svn_prompt_info() {
_DISPLAY=$(svn_get_repo_name)
fi
echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_PREFIX\
-$ZSH_THEME_REPO_NAME_COLOR$_DISPLAY$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR$(svn_dirty)$ZSH_PROMPT_BASE_COLOR"
+$ZSH_THEME_REPO_NAME_COLOR$_DISPLAY$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR$(svn_dirty)$(svn_dirty_pwd)$ZSH_PROMPT_BASE_COLOR"
unset _DISPLAY
fi
}
@@ -74,3 +74,22 @@ function svn_dirty_choose() {
function svn_dirty() {
svn_dirty_choose $ZSH_THEME_SVN_PROMPT_DIRTY $ZSH_THEME_SVN_PROMPT_CLEAN
}
+
+function svn_dirty_choose_pwd () {
+ if in_svn; then
+ root=`pwd`
+ if $(svn status $root 2> /dev/null | grep -Eq '^\s*[ACDIM!?L]'); then
+ # Grep exits with 0 when "One or more lines were selected", return "dirty".
+ echo $1
+ else
+ # Otherwise, no lines were found, or an error occurred. Return clean.
+ echo $2
+ fi
+ fi
+}
+
+function svn_dirty_pwd () {
+ svn_dirty_choose_pwd $ZSH_THEME_SVN_PROMPT_DIRTY_PWD $ZSH_THEME_SVN_PROMPT_CLEAN_PWD
+}
+
+