forked from toolshed/abra
		
	
							
								
								
									
										52
									
								
								completion/_abra
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								completion/_abra
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,52 @@
 | 
				
			|||||||
 | 
					#compdef abra
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_abra () {
 | 
				
			||||||
 | 
						local context state line curcontext="$curcontext" ret=1
 | 
				
			||||||
 | 
						_arguments -n : \
 | 
				
			||||||
 | 
							{-h,--help}'[Help message]' \
 | 
				
			||||||
 | 
							'1:commands:(app server)' \
 | 
				
			||||||
 | 
							'*::arguments:->arguments' \
 | 
				
			||||||
 | 
							&& ret=0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						case $state in
 | 
				
			||||||
 | 
							(arguments)
 | 
				
			||||||
 | 
								curcontext="${curcontext%:*:*}:abra-arguments-$words[1]:"
 | 
				
			||||||
 | 
								case $words[1] in
 | 
				
			||||||
 | 
									(app)
 | 
				
			||||||
 | 
										_arguments \
 | 
				
			||||||
 | 
											'1: :_abra_apps' \
 | 
				
			||||||
 | 
										&& ret=0
 | 
				
			||||||
 | 
									;;
 | 
				
			||||||
 | 
									(server)
 | 
				
			||||||
 | 
										_arguments \
 | 
				
			||||||
 | 
											'1:servers:_abra_servers' \
 | 
				
			||||||
 | 
										&& ret=0
 | 
				
			||||||
 | 
									;;
 | 
				
			||||||
 | 
								esac
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
 | 
						esac
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return ret
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_abra_servers() {
 | 
				
			||||||
 | 
						_path_files -/W $HOME/.abra/servers
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_abra_apps()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						local newapps apps=($HOME/.abra/servers/*/*.env)
 | 
				
			||||||
 | 
						typeset -a apps
 | 
				
			||||||
 | 
						newapps=()
 | 
				
			||||||
 | 
						for app in $apps; do
 | 
				
			||||||
 | 
							newapps+=($(_abra_basename "${app}"))
 | 
				
			||||||
 | 
						done
 | 
				
			||||||
 | 
						_describe -t apps 'app' newapps
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_abra_basename()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    printf -- "${1##*/}"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_abra "$@"
 | 
				
			||||||
@ -40,13 +40,8 @@ _abra_complete_apps()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
_abra_complete()
 | 
					_abra_complete()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    # https://github.com/andsens/homeshick/blob/master/completions/homeshick-completion.bash
 | 
					    compopt +o default +o nospace
 | 
				
			||||||
    if $_ABRA_HAS_COMPOPT; then
 | 
					    COMPREPLY=()
 | 
				
			||||||
        compopt +o default +o nospace
 | 
					 | 
				
			||||||
        COMPREPLY=()
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
        COMPREPLY=('')
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    local -r cmds='
 | 
					    local -r cmds='
 | 
				
			||||||
        app
 | 
					        app
 | 
				
			||||||
@ -119,11 +114,4 @@ _abra_complete()
 | 
				
			|||||||
    fi
 | 
					    fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# https://github.com/andsens/homeshick/blob/master/completions/homeshick-completion.bash
 | 
					 | 
				
			||||||
if type compopt &>/dev/null; then
 | 
					 | 
				
			||||||
    _ABRA_HAS_COMPOPT=true
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
    _ABRA_HAS_COMPOPT=false
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
complete -o default -F _abra_complete abra
 | 
					complete -o default -F _abra_complete abra
 | 
				
			||||||
		Reference in New Issue
	
	Block a user