diff --git a/plugins/mercurial/mercurial.plugin.zsh b/plugins/mercurial/mercurial.plugin.zsh index caf0d9efc..d3eaa2b06 100644 --- a/plugins/mercurial/mercurial.plugin.zsh +++ b/plugins/mercurial/mercurial.plugin.zsh @@ -12,3 +12,17 @@ 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() { + local ref=$(hg branch 2>/dev/null) || return + echo $ref +} + +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 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 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