Skip to content

Commit 652bea1

Browse files
committed
Add fish shell completion support
Signed-off-by: Sascha Grunert <[email protected]>
1 parent f11768f commit 652bea1

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+9020
-1967
lines changed

cmd/crictl/completion.go

+16-2
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ var completionCommand = cli.Command{
9595
Name: "completion",
9696
Usage: "Output shell completion code",
9797
ArgsUsage: "SHELL",
98-
Description: `Output shell completion code for bash or zsh.
98+
Description: `Output shell completion code for bash, zsh or fish.
9999
100100
Examples:
101101
@@ -104,6 +104,9 @@ Examples:
104104
105105
# Installing zsh completion on Linux
106106
source <(crictl completion zsh)
107+
108+
# Installing fish completion on Linux
109+
crictl completion fish | source
107110
`,
108111
Action: func(c *cli.Context) error {
109112
// select bash by default for backwards compatibility
@@ -118,10 +121,21 @@ Examples:
118121
switch c.Args().First() {
119122
case "bash":
120123
return bashCompletion(c)
124+
case "fish":
125+
return fishCompletion(c)
121126
case "zsh":
122127
return zshCompletion(c)
123128
default:
124-
return fmt.Errorf("only bash and zsh supported")
129+
return fmt.Errorf("only bash, zsh or fish are supported")
125130
}
126131
},
127132
}
133+
134+
func fishCompletion(c *cli.Context) error {
135+
completion, err := c.App.ToFishCompletion()
136+
if err != nil {
137+
return err
138+
}
139+
fmt.Fprintln(c.App.Writer, completion)
140+
return nil
141+
}

cmd/crictl/image.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,10 @@ var pullImageCommand = cli.Command{
6060
Usage: "Use `AUTH_STRING` for accessing the registry. AUTH_STRING is a base64 encoded 'USERNAME[:PASSWORD]'",
6161
},
6262
cli.StringFlag{
63-
Name: "pod-config",
64-
Value: "",
65-
Usage: "Use `pod-config.[json|yaml]` to override the the pull context",
63+
Name: "pod-config",
64+
Value: "",
65+
Usage: "Use `pod-config.[json|yaml]` to override the the pull context",
66+
TakesFile: true,
6667
},
6768
},
6869
ArgsUsage: "NAME[:TAG|@DIGEST]",

cmd/crictl/main.go

+5-4
Original file line numberDiff line numberDiff line change
@@ -127,10 +127,11 @@ func main() {
127127

128128
app.Flags = []cli.Flag{
129129
cli.StringFlag{
130-
Name: "config, c",
131-
EnvVar: "CRI_CONFIG_FILE",
132-
Value: defaultConfigPath,
133-
Usage: "Location of the client config file. If not specified and the default does not exist, the program's directory is searched as well",
130+
Name: "config, c",
131+
EnvVar: "CRI_CONFIG_FILE",
132+
Value: defaultConfigPath,
133+
Usage: "Location of the client config file. If not specified and the default does not exist, the program's directory is searched as well",
134+
TakesFile: true,
134135
},
135136
cli.StringFlag{
136137
Name: "runtime-endpoint, r",

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ require (
1616
github.com/opencontainers/selinux v1.2.2
1717
github.com/pborman/uuid v1.2.0
1818
github.com/sirupsen/logrus v1.4.2
19-
github.com/urfave/cli v1.21.0
19+
github.com/urfave/cli v1.22.1
2020
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc
2121
golang.org/x/sys v0.0.0-20190730183949-1393eb018365
2222
google.golang.org/grpc v1.23.0

go.sum

+10-2
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,10 @@ github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee
7272
github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
7373
github.com/coreos/pkg v0.0.0-20180108230652-97fdf19511ea/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
7474
github.com/coreos/rkt v1.30.0/go.mod h1:O634mlH6U7qk87poQifK6M2rsFNt+FyUTWNMnP1hF1U=
75+
github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk=
7576
github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=
77+
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY=
78+
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
7679
github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4=
7780
github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
7881
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -417,7 +420,10 @@ github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR
417420
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
418421
github.com/rubiojr/go-vhd v0.0.0-20160810183302-0bfd3b39853c/go.mod h1:DM5xW0nvfNNm2uytzsvhI3OnX8uzaRAg8UX/CnDqbto=
419422
github.com/russross/blackfriday v0.0.0-20170610170232-067529f716f4/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
423+
github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo=
420424
github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
425+
github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q=
426+
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
421427
github.com/ryanuber/go-glob v0.0.0-20170128012129-256dc444b735/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc=
422428
github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
423429
github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo=
@@ -427,6 +433,8 @@ github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e h1:MZM7FHLqUHYI0Y/mQAt
427433
github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk=
428434
github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041 h1:llrF3Fs4018ePo4+G/HV/uQUqEI1HMDjCeOf2V6puPc=
429435
github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ=
436+
github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo=
437+
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
430438
github.com/sirupsen/logrus v1.0.5/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc=
431439
github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4=
432440
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
@@ -474,8 +482,8 @@ github.com/timakin/bodyclose v0.0.0-20190407043127-4a873e97b2bb h1:lI9ufgFfvuqRc
474482
github.com/timakin/bodyclose v0.0.0-20190407043127-4a873e97b2bb/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk=
475483
github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
476484
github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=
477-
github.com/urfave/cli v1.21.0 h1:wYSSj06510qPIzGSua9ZqsncMmWE3Zr55KBERygyrxE=
478-
github.com/urfave/cli v1.21.0/go.mod h1:lxDj6qX9Q6lWQxIrbrT0nwecwUtRnhVZAJjJZrVUZZQ=
485+
github.com/urfave/cli v1.22.1 h1:+mkCCcOFKPnCmVYVcURKps1Xe+3zP90gSYGNfRkjoIY=
486+
github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
479487
github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4=
480488
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
481489
github.com/valyala/fasthttp v1.2.0/go.mod h1:4vX61m6KN+xDduDNwXrhIAVZaZaZiQ1luJk8LWSxF3s=

vendor/github.com/cpuguy83/go-md2man/v2/LICENSE.md

+21
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/cpuguy83/go-md2man/v2/md2man/md2man.go

+14
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)