heat cli : Add options to bash completion script

Ref #87 add completion of long-format options, align the command options with
the "heat help" option

Signed-off-by: Steven Hardy <shardy@redhat.com>
This commit is contained in:
Steven Hardy 2012-05-16 09:36:43 +01:00
parent 9f8b4b4285
commit 298e0921ae

View File

@ -4,15 +4,19 @@ _heat()
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
opts=`for i in $(heat --help | grep -A100 "^Commands" | grep -B100 "^Options" | grep "^\s*[a-z]" | awk '{print $1}'); do echo $i; done`
if [[ ${cur} == * ]]; then
if [[ ${#COMP_WORDS[@]} -gt 2 ]]; then
return 0
else
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
fi
fi
if [[ ${cur} == -* ]]; then
opts=$(heat --help | grep -A100 "^Options" | sed -r "s/^[[:space:]]*-[[:alpha:]]([[:space:]][[:alpha:]_]*,|,)[[:space:]]//" | cut -d "=" -f1 | grep "^--" | awk '{print $1}')
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
fi
if [[ ${#COMP_WORDS[@]} -gt 2 ]]; then
return 0
else
cmds=$(heat help | awk '{print $1}' | egrep -v "^(Usage|Commands|$)")
COMPREPLY=( $(compgen -W "${cmds}" -- ${cur}) )
return 0
fi
}
complete -F _heat heat