From 07cdf56a67e02b2ea806e28a6ad336f65dc416fc Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Fri, 28 Feb 2014 13:36:14 +0100 Subject: [PATCH] cli/bash-completion: support abbreviated options for commands Add support for abbreviated options as first argument: nmcli connection show --act Signed-off-by: Thomas Haller --- cli/completion/nmcli | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/cli/completion/nmcli b/cli/completion/nmcli index 2c1b623923..032308e34d 100644 --- a/cli/completion/nmcli +++ b/cli/completion/nmcli @@ -535,12 +535,20 @@ _nmcli_compl_COMMAND() { _nmcli_compl_COMMAND_nl() { local command="$1" + local a="$2" shift - if [[ "x${command:0:1}" == 'x-' ]]; then - _nmcli_list_nl "$(printf "%s-h\n--help\n%s" "" "$*")" + shift + local V=("$@") + if [[ "${command[0]:0:1}" != '-' ]]; then + V=("${V[@]/#/--}" help) + elif [[ "${command[0]:1:1}" == '-' || "${command[0]}" == "-" ]]; then + V=("${V[@]/#/--}" --help) else - _nmcli_list_nl "$(printf "help\n%s" "$*")" + V=("${V[@]/#/-}" -help) fi + local IFS=$'\n' + V="${V[*]}" + _nmcli_list_nl "$(printf "%s%s\n%s" "" "$V" "$a")" } _nmcli() @@ -652,7 +660,7 @@ _nmcli() case "$command" in s|sh|sho|show) if [[ ${#words[@]} -eq 3 ]]; then - _nmcli_compl_COMMAND_nl "${words[2]}" "$(printf "id\nuuid\npath\napath\n--active\n%s" "$(_nmcli_con_show NAME)")" + _nmcli_compl_COMMAND_nl "${words[2]}" "$(printf "id\nuuid\npath\napath\n%s" "$(_nmcli_con_show NAME)")" active elif [[ ${#words[@]} -gt 3 ]]; then OPTIONS=(id uuid path apath) words=("${words[@]:2}")