1
0
Fork 0
mirror of synced 2024-12-28 08:53:21 -05:00
zimfw/modules/prompt/themes/gitster.zsh-theme
caedus75 f2806b45bf fix prompt substitutions/expansions
The 'prompt' function disables any option set with 'setopt'.
To make options persistent we need to use the 'prompt_opts' array
instead

Closes #8
2015-12-30 04:42:31 -05:00

31 lines
892 B
Bash

#
# Gitster theme
# https://github.com/shashankmehta/dotfiles/blob/master/thesetup/zsh/.oh-my-zsh/custom/themes/gitster.zsh-theme
#
autoload -Uz colors && colors
prompt_opts=( cr subst percent )
local ret_status="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ %s)"
function get_pwd(){
git_root=$PWD
while [[ $git_root != / && ! -e $git_root/.git ]]; do
git_root=$git_root:h
done
if [[ $git_root = / ]]; then
unset git_root
prompt_short_dir=%~
else
parent=${git_root%\/*}
prompt_short_dir=${PWD#$parent/}
fi
print $prompt_short_dir
}
PROMPT='$ret_status %{$fg[white]%}$(get_pwd) $(git_prompt_info)%{$reset_color%}%{$reset_color%} '
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[cyan]%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[yellow]%}✗%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_CLEAN=" %{$fg[green]%}✓%{$reset_color%}"