Add remote argument completions
This was copied from _git-flow
This commit is contained in:
		
							parent
							
								
									4ed5855317
								
							
						
					
					
						commit
						d5674edf44
					
				
							
								
								
									
										33
									
								
								src/_heroku
								
								
								
								
							
							
						
						
									
										33
									
								
								src/_heroku
								
								
								
								
							| 
						 | 
					@ -163,9 +163,40 @@ case "$words[1]" in
 | 
				
			||||||
_arguments \
 | 
					_arguments \
 | 
				
			||||||
  $_command_args \
 | 
					  $_command_args \
 | 
				
			||||||
  '(-a|--app)'{-a,--app}'[the app name]' \
 | 
					  '(-a|--app)'{-a,--app}'[the app name]' \
 | 
				
			||||||
  '(-r|--remote)'{-r,--remote}'[the git remote name]' \
 | 
					  '(-r|--remote)'{-r,--remote}'[the git remote name]:remote:->remotes' \
 | 
				
			||||||
  &&  return 0
 | 
					  &&  return 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__git_remotes () {
 | 
				
			||||||
 | 
						local expl gitdir remotes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						gitdir=$(_call_program gitdir git rev-parse --git-dir 2>/dev/null)
 | 
				
			||||||
 | 
						__git_command_successful || return
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						remotes=(${${(f)"$(_call_program remotes git config --get-regexp '"^remote\..*\.url$"')"}//#(#b)remote.(*).url */$match[1]})
 | 
				
			||||||
 | 
						__git_command_successful || return
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# TODO: Should combine the two instead of either or.
 | 
				
			||||||
 | 
						if (( $#remotes > 0 )); then
 | 
				
			||||||
 | 
							_wanted remotes expl remote compadd $* - $remotes
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							_wanted remotes expl remote _files $* - -W "($gitdir/remotes)" -g "$gitdir/remotes/*"
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__git_command_successful () {
 | 
				
			||||||
 | 
						if (( ${#pipestatus:#0} > 0 )); then
 | 
				
			||||||
 | 
							_message 'not a git repository'
 | 
				
			||||||
 | 
							return 1
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
						return 0
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					case $state in
 | 
				
			||||||
 | 
					  (remotes)
 | 
				
			||||||
 | 
					   __git_remotes && return 0
 | 
				
			||||||
 | 
					  ;;
 | 
				
			||||||
 | 
					esac
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Local Variables:
 | 
					# Local Variables:
 | 
				
			||||||
# mode: Shell-Script
 | 
					# mode: Shell-Script
 | 
				
			||||||
# sh-indentation: 2
 | 
					# sh-indentation: 2
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue