2019-05-23 13:42 UTC-0700 ~ Andrii Nakryiko <[email protected]>
> Add bash completion for new C btf dump option.
>
> Cc: Quentin Monnet <[email protected]>
> Signed-off-by: Andrii Nakryiko <[email protected]>
> ---
> tools/bpf/bpftool/bash-completion/bpftool | 25 +++++++++++++++++++----
> 1 file changed, 21 insertions(+), 4 deletions(-)
>
> diff --git a/tools/bpf/bpftool/bash-completion/bpftool
> b/tools/bpf/bpftool/bash-completion/bpftool
> index 50e402a5a9c8..5b65e0309d2a 100644
> --- a/tools/bpf/bpftool/bash-completion/bpftool
> +++ b/tools/bpf/bpftool/bash-completion/bpftool
> @@ -638,11 +638,28 @@ _bpftool()
> esac
> return 0
> ;;
> + format)
> + COMPREPLY=( $( compgen -W "c raw" -- "$cur" ) )
> + ;;
> *)
> - if [[ $cword == 6 ]] && [[ ${words[3]} == "map"
> ]]; then
> - COMPREPLY+=( $( compgen -W 'key value kv
> all' -- \
> - "$cur" ) )
> - fi
> + # emit extra options
> + case ${words[3]} in
> + id|file)
> + if [[ $cword > 4 ]]; then
Not sure if this "if" is necessary. It seems to me that if $cword is 4
then we are just after "id" or "file" in the command line, in which case
we hit previous cases and never reach this point?
Also, reading the completion code I wonder, do we have completion for
BTF ids? It seems to me that we have nothing proposed to complete
"bpftool btf dump id <tab>". Any chance to get that in a follow-up patch?
> + _bpftool_once_attr 'format'
> + fi
> + ;;
> + map|prog)
> + if [[ ${words[3]} == "map" ]] && [[
> $cword == 6 ]]; then
> + COMPREPLY+=( $( compgen -W "key
> value kv all" -- "$cur" ) )
> + fi
> + if [[ $cword > 5 ]]; then
Same remark on the "if", I do not believe it is necessary?
> + _bpftool_once_attr 'format'
> + fi
> + ;;
> + *)
> + ;;
> + esac
> return 0
> ;;
> esac
>