From: Steven Hardy Date: Wed, 16 May 2012 08:36:43 +0000 (+0100) Subject: heat cli : Add options to bash completion script X-Git-Tag: 2014.1~1821 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=298e0921aeb081ab1e3f8aa93ab3814a849877a2;p=openstack-build%2Fheat-build.git 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 --- diff --git a/etc/bash_completion.d/heat b/etc/bash_completion.d/heat index 0cde4060..4b04ef52 100644 --- a/etc/bash_completion.d/heat +++ b/etc/bash_completion.d/heat @@ -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