forked from toolshed/abra
		
	
		
			
				
	
	
		
			53 lines
		
	
	
		
			828 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			828 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| #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 "$@"
 |