diff mbox series

[bpf-next] tools: bpftool: add completion for bpftool prog "loadall"

Message ID 20190708130546.7518-1-quentin.monnet@netronome.com
State Accepted
Delegated to: BPF Maintainers
Headers show
Series [bpf-next] tools: bpftool: add completion for bpftool prog "loadall" | expand

Commit Message

Quentin Monnet July 8, 2019, 1:05 p.m. UTC
Bash completion for proposing the "loadall" subcommand is missing. Let's
add it to the completion script.

Add a specific case to propose "load" and "loadall" for completing:

    $ bpftool prog load
                       ^ cursor is here

Otherwise, completion considers that $command is in load|loadall and
starts making related completions (file or directory names, as the
number of words on the command line is below 6), when the only suggested
keywords should be "load" and "loadall" until one has been picked and a
space entered after that to move to the next word.

Signed-off-by: Quentin Monnet <quentin.monnet@netronome.com>
Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com>
---
 tools/bpf/bpftool/bash-completion/bpftool | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

Comments

Daniel Borkmann July 8, 2019, 3:27 p.m. UTC | #1
On 07/08/2019 03:05 PM, Quentin Monnet wrote:
> Bash completion for proposing the "loadall" subcommand is missing. Let's
> add it to the completion script.
> 
> Add a specific case to propose "load" and "loadall" for completing:
> 
>     $ bpftool prog load
>                        ^ cursor is here
> 
> Otherwise, completion considers that $command is in load|loadall and
> starts making related completions (file or directory names, as the
> number of words on the command line is below 6), when the only suggested
> keywords should be "load" and "loadall" until one has been picked and a
> space entered after that to move to the next word.
> 
> Signed-off-by: Quentin Monnet <quentin.monnet@netronome.com>
> Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com>

Applied, thanks!
diff mbox series

Patch

diff --git a/tools/bpf/bpftool/bash-completion/bpftool b/tools/bpf/bpftool/bash-completion/bpftool
index 965a8658cca3..c8f42e1fcbc9 100644
--- a/tools/bpf/bpftool/bash-completion/bpftool
+++ b/tools/bpf/bpftool/bash-completion/bpftool
@@ -342,6 +342,13 @@  _bpftool()
                 load|loadall)
                     local obj
 
+                    # Propose "load/loadall" to complete "bpftool prog load",
+                    # or bash tries to complete "load" as a filename below.
+                    if [[ ${#words[@]} -eq 3 ]]; then
+                        COMPREPLY=( $( compgen -W "load loadall" -- "$cur" ) )
+                        return 0
+                    fi
+
                     if [[ ${#words[@]} -lt 6 ]]; then
                         _filedir
                         return 0
@@ -435,7 +442,7 @@  _bpftool()
                 *)
                     [[ $prev == $object ]] && \
                         COMPREPLY=( $( compgen -W 'dump help pin attach detach \
-                            load show list tracelog run' -- "$cur" ) )
+                            load loadall show list tracelog run' -- "$cur" ) )
                     ;;
             esac
             ;;