38 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# bash completion for openstack nova-manage
 | 
						|
 | 
						|
_nova_manage_opts="" # lazy init
 | 
						|
_nova_manage_opts_exp="" # lazy init
 | 
						|
 | 
						|
# dict hack for bash 3
 | 
						|
_set_nova_manage_subopts () {
 | 
						|
  eval _nova_manage_subopts_"$1"='$2'
 | 
						|
}
 | 
						|
_get_nova_manage_subopts () {
 | 
						|
  eval echo '${_nova_manage_subopts_'"$1"'#_nova_manage_subopts_}'
 | 
						|
}
 | 
						|
 | 
						|
_nova_manage()
 | 
						|
{
 | 
						|
	local cur prev subopts
 | 
						|
	COMPREPLY=()
 | 
						|
	cur="${COMP_WORDS[COMP_CWORD]}"
 | 
						|
	prev="${COMP_WORDS[COMP_CWORD-1]}"
 | 
						|
 | 
						|
	if [ "x$_nova_manage_opts" == "x" ] ; then
 | 
						|
		_nova_manage_opts="`nova-manage bash-completion 2>/dev/null`"
 | 
						|
		_nova_manage_opts_exp="`echo $_nova_manage_opts | sed -e "s/\s/|/g"`"
 | 
						|
	fi
 | 
						|
 | 
						|
	if [[ " `echo $_nova_manage_opts` " =~ " $prev " ]] ; then
 | 
						|
		if [ "x$(_get_nova_manage_subopts "$prev")" == "x" ] ; then
 | 
						|
			subopts="`nova-manage bash-completion $prev 2>/dev/null`"
 | 
						|
			_set_nova_manage_subopts "$prev" "$subopts"
 | 
						|
		fi
 | 
						|
		COMPREPLY=($(compgen -W "$(_get_nova_manage_subopts "$prev")" -- ${cur}))
 | 
						|
	elif [[ ! " ${COMP_WORDS[@]} " =~ " "($_nova_manage_opts_exp)" " ]] ; then
 | 
						|
		COMPREPLY=($(compgen -W "${_nova_manage_opts}" -- ${cur}))
 | 
						|
	fi
 | 
						|
	return 0
 | 
						|
}
 | 
						|
complete -F _nova_manage nova-manage
 |