1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- _FOSSIL_PROMPT=""
- # Prefix at the very beginning of the prompt, before the branch name
- ZSH_THEME_FOSSIL_PROMPT_PREFIX="%{$fg_bold[blue]%}fossil:(%{$fg_bold[red]%}"
- # At the very end of the prompt
- ZSH_THEME_FOSSIL_PROMPT_SUFFIX="%{$fg_bold[blue]%})"
- # Text to display if the branch is dirty
- ZSH_THEME_FOSSIL_PROMPT_DIRTY=" %{$fg_bold[red]%}✖"
- # Text to display if the branch is clean
- ZSH_THEME_FOSSIL_PROMPT_CLEAN=" %{$fg_bold[green]%}✔"
- function fossil_prompt_info () {
- local _OUTPUT=`fossil branch 2>&1`
- local _STATUS=`echo $_OUTPUT | grep "use --repo"`
- if [ "$_STATUS" = "" ]; then
- local _EDITED=`fossil changes`
- local _EDITED_SYM="$ZSH_THEME_FOSSIL_PROMPT_CLEAN"
- local _BRANCH=`echo $_OUTPUT | grep "* " | sed 's/* //g'`
- if [ "$_EDITED" != "" ]; then
- _EDITED_SYM="$ZSH_THEME_FOSSIL_PROMPT_DIRTY"
- fi
- echo "$ZSH_THEME_FOSSIL_PROMPT_PREFIX" \
- "$_BRANCH" \
- "$ZSH_THEME_FOSSIL_PROMPT_SUFFIX" \
- "$_EDITED_SYM"\
- "%{$reset_color%}"
- fi
- }
- function _fossil_get_command_list () {
- fossil help -a | grep -v "Usage|Common|This is"
- }
- function _fossil () {
- local context state state_descr line
- typeset -A opt_args
- _arguments \
- '1: :->command'\
- '2: :->subcommand'
- case $state in
- command)
- local _OUTPUT=`fossil branch 2>&1 | grep "use --repo"`
- if [ "$_OUTPUT" = "" ]; then
- compadd `_fossil_get_command_list`
- else
- compadd clone init import help version
- fi
- ;;
- subcommand)
- if [ "$words[2]" = "help" ]; then
- compadd `_fossil_get_command_list`
- else
- compcall -D
- fi
- ;;
- esac
- }
- function _fossil_prompt () {
- local current=`echo $PROMPT $RPROMPT | grep fossil`
- if [ "$_FOSSIL_PROMPT" = "" -o "$current" = "" ]; then
- local _prompt=${PROMPT}
- local _rprompt=${RPROMPT}
- local is_prompt=`echo $PROMPT | grep git`
- if [ "$is_prompt" = "" ]; then
- export RPROMPT="$_rprompt"'$(fossil_prompt_info)'
- else
- export PROMPT="$_prompt"'$(fossil_prompt_info) '
- fi
- _FOSSIL_PROMPT="1"
- fi
- }
- compdef _fossil fossil
- autoload -U add-zsh-hook
- add-zsh-hook precmd _fossil_prompt
|