mirror of
				https://github.com/ohmyzsh/ohmyzsh.git
				synced 2024-05-11 05:55:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			90 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| _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
 |