2019-05-23 13:42 UTC-0700 ~ Andrii Nakryiko <andriin@xxxxxx> > Add bash completion for new C btf dump option. > > Cc: Quentin Monnet <quentin.monnet@xxxxxxxxxxxxx> > Signed-off-by: Andrii Nakryiko <andriin@xxxxxx> > --- > 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 >