mirror of
				https://github.com/ohmyzsh/ohmyzsh.git
				synced 2025-11-04 13:21:19 +08:00 
			
		
		
		
	Added fossil plugin.
This commit is contained in:
		
							parent
							
								
									0ebe35968c
								
							
						
					
					
						commit
						2bce3b1f58
					
				
							
								
								
									
										7
									
								
								plugins/fossil/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								plugins/fossil/README.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,7 @@
 | 
			
		||||
## Fossil Plugin
 | 
			
		||||
 | 
			
		||||
This plugin adds completion support and prompt for fossil repositories.
 | 
			
		||||
The prompt will display the current branch and status been dirty or clean.
 | 
			
		||||
 | 
			
		||||
### CONTRIBUTOR
 | 
			
		||||
 - Jefferson González ([jgmdev](https://github.com/jgmdev))
 | 
			
		||||
							
								
								
									
										89
									
								
								plugins/fossil/fossil.plugin.zsh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										89
									
								
								plugins/fossil/fossil.plugin.zsh
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,89 @@
 | 
			
		||||
_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
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user