diff options
author | Paul Holzinger <pholzing@redhat.com> | 2022-05-16 15:10:58 +0200 |
---|---|---|
committer | Paul Holzinger <pholzing@redhat.com> | 2022-05-18 18:24:42 +0200 |
commit | 11ff5ffd3b0acba02991b0879a1b8493ea0f3bc9 (patch) | |
tree | 2b92dc76aa3ad218314309ad337677a46eec0a9f /cmd/podman/common/completion.go | |
parent | eeeb88a667141380b843d92eb4478553b2256f17 (diff) | |
download | podman-11ff5ffd3b0acba02991b0879a1b8493ea0f3bc9.tar.gz podman-11ff5ffd3b0acba02991b0879a1b8493ea0f3bc9.tar.bz2 podman-11ff5ffd3b0acba02991b0879a1b8493ea0f3bc9.zip |
shell completion --format: only show usable methods
In a template you cann call function that are defined on a type, however
this is only useful if they return one value. If it returns more than
one the template cannot know what value it has to display.
Signed-off-by: Paul Holzinger <pholzing@redhat.com>
Diffstat (limited to 'cmd/podman/common/completion.go')
-rw-r--r-- | cmd/podman/common/completion.go | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/cmd/podman/common/completion.go b/cmd/podman/common/completion.go index 0db9f7351..3c614c0e1 100644 --- a/cmd/podman/common/completion.go +++ b/cmd/podman/common/completion.go @@ -1084,7 +1084,12 @@ func getStructFields(f reflect.Value, prefix string) []string { func getMethodNames(f reflect.Value, prefix string) []string { suggestions := make([]string, 0, f.NumMethod()) for j := 0; j < f.NumMethod(); j++ { - fname := f.Type().Method(j).Name + method := f.Type().Method(j) + // in a template we can only run functions with one return value + if method.Func.Type().NumOut() != 1 { + continue + } + fname := method.Name if strings.HasPrefix(fname, prefix) { // add method name with closing braces suggestions = append(suggestions, fname+"}}") |