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() | ||||
| { | ||||
|     # https://github.com/andsens/homeshick/blob/master/completions/homeshick-completion.bash | ||||
|     if $_ABRA_HAS_COMPOPT; then | ||||
|     compopt +o default +o nospace | ||||
|     COMPREPLY=() | ||||
|     else | ||||
|         COMPREPLY=('') | ||||
|     fi | ||||
| 
 | ||||
|     local -r cmds=' | ||||
|         app | ||||
| @ -119,11 +114,4 @@ _abra_complete() | ||||
|     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 | ||||
		Reference in New Issue
	
	Block a user