From a91efab8982b9e4d02ac663c7969974f0d319bc4 Mon Sep 17 00:00:00 2001 From: Lucas Sampaio Date: Fri, 5 Oct 2012 17:27:05 -0300 Subject: [PATCH 1/7] hg_current_branch added to mercurial plugin --- plugins/mercurial/mercurial.plugin.zsh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/plugins/mercurial/mercurial.plugin.zsh b/plugins/mercurial/mercurial.plugin.zsh index caf0d9efc..a3a6ff8b6 100644 --- a/plugins/mercurial/mercurial.plugin.zsh +++ b/plugins/mercurial/mercurial.plugin.zsh @@ -12,3 +12,9 @@ alias hgp='hg push' alias hgs='hg status' # this is the 'git commit --amend' equivalent alias hgca='hg qimport -r tip ; hg qrefresh -e ; hg qfinish tip' + +function hg_current_branch() { + if [ -d .hg ]; then + echo hg:$(hg branch) + fi +} \ No newline at end of file From 858bea86a5fbcecc7faacc058b0630e33e18f71a Mon Sep 17 00:00:00 2001 From: Lucas Sampaio Date: Fri, 5 Oct 2012 22:52:01 -0300 Subject: [PATCH 2/7] Fixed output in hg_current_branch function --- plugins/mercurial/mercurial.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/mercurial/mercurial.plugin.zsh b/plugins/mercurial/mercurial.plugin.zsh index a3a6ff8b6..062baaa34 100644 --- a/plugins/mercurial/mercurial.plugin.zsh +++ b/plugins/mercurial/mercurial.plugin.zsh @@ -15,6 +15,6 @@ alias hgca='hg qimport -r tip ; hg qrefresh -e ; hg qfinish tip' function hg_current_branch() { if [ -d .hg ]; then - echo hg:$(hg branch) + echo $(hg branch) fi } \ No newline at end of file From b185dde88e33df3b14f301dbadbff93129a07fe2 Mon Sep 17 00:00:00 2001 From: Lucas Sampaio Date: Fri, 5 Oct 2012 23:17:29 -0300 Subject: [PATCH 3/7] #parse_hg_dirty added to mercurial plugin --- plugins/mercurial/mercurial.plugin.zsh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/plugins/mercurial/mercurial.plugin.zsh b/plugins/mercurial/mercurial.plugin.zsh index 062baaa34..32060a47d 100644 --- a/plugins/mercurial/mercurial.plugin.zsh +++ b/plugins/mercurial/mercurial.plugin.zsh @@ -17,4 +17,14 @@ function hg_current_branch() { if [ -d .hg ]; then echo $(hg branch) fi +} + +parse_hg_dirty() { + hg status 2> /dev/null \ + | awk '$1 == "?" { unknown = 1 } + $1 != "?" { changed = 1 } + END { + if (changed) printf "$ZSH_THEME_GIT_PROMPT_DIRTY" + else if (unknown) printf "$ZSH_THEME_GIT_PROMPT_CLEAN" + }' } \ No newline at end of file From 2617b627d20c42b2ad53ce46ce9cb251e79435e1 Mon Sep 17 00:00:00 2001 From: Lucas Sampaio Date: Sat, 6 Oct 2012 09:10:08 -0300 Subject: [PATCH 4/7] Fixed output of mercurial#parse_hg_dirty --- plugins/mercurial/mercurial.plugin.zsh | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/plugins/mercurial/mercurial.plugin.zsh b/plugins/mercurial/mercurial.plugin.zsh index 32060a47d..e776c87e2 100644 --- a/plugins/mercurial/mercurial.plugin.zsh +++ b/plugins/mercurial/mercurial.plugin.zsh @@ -19,12 +19,11 @@ function hg_current_branch() { fi } -parse_hg_dirty() { - hg status 2> /dev/null \ - | awk '$1 == "?" { unknown = 1 } - $1 != "?" { changed = 1 } - END { - if (changed) printf "$ZSH_THEME_GIT_PROMPT_DIRTY" - else if (unknown) printf "$ZSH_THEME_GIT_PROMPT_CLEAN" - }' +function parse_hg_dirty() { + local num_status=$(hg status | wc -l) + if [ $num_status -eq 0 ]; then + echo "$ZSH_THEME_GIT_PROMPT_CLEAN" + else + echo "$ZSH_THEME_GIT_PROMPT_DIRTY" + fi } \ No newline at end of file From 5f7ba09b7a801c8f62a0eacf1bc9ce0da8ba51dd Mon Sep 17 00:00:00 2001 From: Lucas Sampaio Date: Sat, 6 Oct 2012 09:10:24 -0300 Subject: [PATCH 5/7] Liquid theme (fork of gallois) added --- themes/liquid.zsh-theme | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 themes/liquid.zsh-theme diff --git a/themes/liquid.zsh-theme b/themes/liquid.zsh-theme new file mode 100644 index 000000000..173cf022f --- /dev/null +++ b/themes/liquid.zsh-theme @@ -0,0 +1,29 @@ +# This is a fork of gallois theme +# Now it can show both git and hg branches +# rvm is not shown +# You should use git & mercurial plugins + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[green]%}[" +ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}*%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_CLEAN="" + +# Customized git status +function git_custom_status { + local cb=$(current_branch) + if [ -n "$cb" ]; then + echo "$(parse_git_dirty)${ZSH_THEME_GIT_PROMPT_PREFIX}git:$(current_branch)$ZSH_THEME_GIT_PROMPT_SUFFIX" + fi +} + +# Customized hg status +function hg_custom_status { + local cb=$(hg_current_branch) + if [ -n "$cb" ]; then + echo "$(parse_hg_dirty)${ZSH_THEME_GIT_PROMPT_PREFIX}hg:$(hg_current_branch)$ZSH_THEME_GIT_PROMPT_SUFFIX" + fi +} + +RPROMPT='$(git_custom_status)$(hg_custom_status)%{$reset_color%}' + +PROMPT='%{$fg[cyan]%}[%~% ]%(?.%{$fg[green]%}.%{$fg[red]%})%B$%b ' \ No newline at end of file From 7163095193d6bab0bfa6208912ac2bc85e534d60 Mon Sep 17 00:00:00 2001 From: Lucas Sampaio Date: Sun, 7 Oct 2012 17:42:57 -0300 Subject: [PATCH 6/7] install.sh for my fork --- tools/install_fork.sh | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100755 tools/install_fork.sh diff --git a/tools/install_fork.sh b/tools/install_fork.sh new file mode 100755 index 000000000..c8ccdf650 --- /dev/null +++ b/tools/install_fork.sh @@ -0,0 +1,39 @@ +if [ -d ~/.oh-my-zsh ] +then + echo "\033[0;33mYou already have Oh My Zsh installed.\033[0m You'll need to remove ~/.oh-my-zsh if you want to install" + exit +fi + +echo "\033[0;34mCloning Oh My Zsh...\033[0m" +hash git >/dev/null && /usr/bin/env git clone https://github.com/lucassmagal/oh-my-zsh.git ~/.oh-my-zsh || { + echo "git not installed" + exit +} + +echo "\033[0;34mLooking for an existing zsh config...\033[0m" +if [ -f ~/.zshrc ] || [ -h ~/.zshrc ] +then + echo "\033[0;33mFound ~/.zshrc.\033[0m \033[0;32]Backing up to ~/.zshrc.pre-oh-my-zsh\033[0m"; + cp ~/.zshrc ~/.zshrc.pre-oh-my-zsh; + rm ~/.zshrc; +fi + +echo "\033[0;34mUsing the Oh My Zsh template file and adding it to ~/.zshrc\033[0m" +cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc + +echo "\033[0;34mCopying your current PATH and adding it to the end of ~/.zshrc for you.\033[0m" +echo "export PATH=$PATH" >> ~/.zshrc + +echo "\033[0;34mTime to change your default shell to zsh!\033[0m" +chsh -s `which zsh` + +echo "\033[0;32m"' __ __ '"\033[0m" +echo "\033[0;32m"' ____ / /_ ____ ___ __ __ ____ _____/ /_ '"\033[0m" +echo "\033[0;32m"' / __ \/ __ \ / __ `__ \/ / / / /_ / / ___/ __ \ '"\033[0m" +echo "\033[0;32m"'/ /_/ / / / / / / / / / / /_/ / / /_(__ ) / / / '"\033[0m" +echo "\033[0;32m"'\____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/ '"\033[0m" +echo "\033[0;32m"' /____/ '"\033[0m" + +echo "\n\n \033[0;32m....is now installed.\033[0m" +/usr/bin/env zsh +source ~/.zshrc From 5ec68ff511f9e63704b5dd627628cd729415bdaf Mon Sep 17 00:00:00 2001 From: Lucas Sampaio Date: Mon, 8 Oct 2012 13:10:58 -0300 Subject: [PATCH 7/7] Refactory of #hg_current_branch in mercurial plugin --- plugins/mercurial/mercurial.plugin.zsh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/plugins/mercurial/mercurial.plugin.zsh b/plugins/mercurial/mercurial.plugin.zsh index e776c87e2..d3eaa2b06 100644 --- a/plugins/mercurial/mercurial.plugin.zsh +++ b/plugins/mercurial/mercurial.plugin.zsh @@ -14,9 +14,8 @@ alias hgs='hg status' alias hgca='hg qimport -r tip ; hg qrefresh -e ; hg qfinish tip' function hg_current_branch() { - if [ -d .hg ]; then - echo $(hg branch) - fi + local ref=$(hg branch 2>/dev/null) || return + echo $ref } function parse_hg_dirty() {