From 6e69c4d002fffc3fc7e56fb0d3f7e72ab1e3ec71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20GAUTIER?= Date: Fri, 6 Jan 2012 15:01:40 +0100 Subject: [PATCH] Update mercurial plugin --- plugins/mercurial/mercurial.plugin.zsh | 71 ++++++++++++++++++++++++++ themes/educatux.zsh-theme | 10 ++++ 2 files changed, 81 insertions(+) create mode 100644 themes/educatux.zsh-theme diff --git a/plugins/mercurial/mercurial.plugin.zsh b/plugins/mercurial/mercurial.plugin.zsh index 2988f0a46..c9e3291d6 100644 --- a/plugins/mercurial/mercurial.plugin.zsh +++ b/plugins/mercurial/mercurial.plugin.zsh @@ -1,3 +1,74 @@ +## Source : https://bitbucket.org/Josh/mercurial-for-zsh + +function chpwd_update_hg_vars() { + update_current_hg_vars +} + +function precmd_update_hg_vars(){ + if [ -n "$__EXECUTED_HG_COMMAND" ]; then + update_current_hg_vars + unset __EXECUTED_HG_COMMAND + fi +} + + +function preexec_update_hg_vars(){ + case "$1" in + hg*) + export __EXECUTED_HG_COMMAND=1 + ;; + esac +} + +function prompt_hg_info(){ + if [ -n "$__CURRENT_HG_BRANCH" ]; then + local s="[" + s+="$__CURRENT_HG_BRANCH" + case "$__CURRENT_HG_BRANCH_STATUS" in + ahead) + s+="↑" + ;; + diverged) + s+="↕" + ;; + behind) + s+="↓" + ;; + esac + if [ -n "$__CURRENT_HG_BRANCH_IS_DIRTY" ]; then + s+="⚡" + fi + s+="] " + + printf " %s%s" "%{${fg[yellow]}%}" $s + fi +} + +function update_current_hg_vars(){ + unset __CURRENT_HG_BRANCH + unset __CURRENT_HG_BRANCH_STATUS + unset __CURRENT_HG_BRANCH_IS_DIRTY + local st="$(hg status 2>/dev/null)" + local br="$(hg branch 2>/dev/null)" + if [ -n "$br" ]; then + local -a arr + arr=(${(f)br}) + export __CURRENT_HG_BRANCH="$(echo $arr[1])" + fi + if [ -n "$st" ]; then + if echo $st | grep "nothing to commit (working directory clean)" >/dev/null; then + else + export __CURRENT_HG_BRANCH_IS_DIRTY='1' + fi + fi +} + +preexec_functions+='preexec_update_hg_vars' +precmd_functions+='precmd_update_hg_vars' +chpwd_functions+='chpwd_update_hg_vars' + +# Set the prompt. +# PROMPT=$'%{${fg[cyan]}%}%B%~%b$(prompt_hg_info)%{${fg[default]}%} ' # Mercurial alias hgc='hg commit -v' diff --git a/themes/educatux.zsh-theme b/themes/educatux.zsh-theme new file mode 100644 index 000000000..baed1fc8d --- /dev/null +++ b/themes/educatux.zsh-theme @@ -0,0 +1,10 @@ +PROMPT=$' +%{$fg[blue]%}%/%{$reset_color%} $(git_prompt_info)%{$fg[white]%}$(prompt_hg_info)%{$fg[white]%}[%n@%m]%{$reset_color%} %{$fg[white]%}[%T]%{$reset_color%} +%{$fg_bold[black]%}>%{$reset_color%} ' + +PROMPT2="%{$fg_blod[black]%}%_> %{$reset_color%}" + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[green]%}[" +ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%} " +ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}*%{$fg[green]%}" +ZSH_THEME_GIT_PROMPT_CLEAN=""