Skip to content

Commit 655c455

Browse files
committed
feat: add manpage subcommand
Signed-off-by: Hoang Nguyen <[email protected]>
1 parent c2ce957 commit 655c455

File tree

3 files changed

+28
-0
lines changed

3 files changed

+28
-0
lines changed

cmd/sops/main.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
"strings"
1616

1717
"github.com/sirupsen/logrus"
18+
"github.com/urfave/cli-docs/v3"
1819
"github.com/urfave/cli/v3"
1920
"google.golang.org/grpc"
2021
"google.golang.org/grpc/credentials/insecure"
@@ -174,6 +175,24 @@ For more information, see the README at https://github.com/getsops/sops`,
174175
EnableShellCompletion: true,
175176

176177
Commands: []*cli.Command{
178+
{
179+
Name: "manpage",
180+
Usage: "Output man page for sops command",
181+
Hidden: true,
182+
Action: func(ctx context.Context, c *cli.Command) error {
183+
man, err := docs.ToManWithSection(c.Root(), 1)
184+
if err != nil {
185+
return cli.Exit(err, 1)
186+
}
187+
188+
_, err = c.Writer.Write([]byte(man))
189+
if err != nil {
190+
return cli.Exit(err, 1)
191+
}
192+
193+
return nil
194+
},
195+
},
177196
{
178197
Name: "exec-env",
179198
Usage: "execute a command with decrypted values inserted into the environment",

go.mod

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ require (
3232
github.com/pkg/errors v0.9.1
3333
github.com/sirupsen/logrus v1.9.3
3434
github.com/stretchr/testify v1.11.1
35+
github.com/urfave/cli-docs/v3 v3.1.0
3536
github.com/urfave/cli/v3 v3.4.1
3637
go.yaml.in/yaml/v3 v3.0.4
3738
golang.org/x/crypto v0.42.0
@@ -84,6 +85,7 @@ require (
8485
github.com/cloudflare/circl v1.6.1 // indirect
8586
github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 // indirect
8687
github.com/containerd/continuity v0.4.5 // indirect
88+
github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
8789
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
8890
github.com/docker/cli v28.0.4+incompatible // indirect
8991
github.com/docker/docker v28.0.4+incompatible // indirect
@@ -123,6 +125,7 @@ require (
123125
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
124126
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
125127
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
128+
github.com/russross/blackfriday/v2 v2.1.0 // indirect
126129
github.com/ryanuber/go-glob v1.0.0 // indirect
127130
github.com/spiffe/go-spiffe/v2 v2.5.0 // indirect
128131
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect

go.sum

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,8 @@ github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 h1:aQ3y1lwWyqYPiWZThqv
114114
github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8=
115115
github.com/containerd/continuity v0.4.5 h1:ZRoN1sXq9u7V6QoHMcVWGhOwDFqZ4B9i5H6un1Wh0x4=
116116
github.com/containerd/continuity v0.4.5/go.mod h1:/lNJvtJKUQStBzpVQ1+rasXO1LAWtUQssk28EZvJ3nE=
117+
github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w=
118+
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
117119
github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY=
118120
github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4=
119121
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -247,6 +249,8 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI
247249
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
248250
github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
249251
github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
252+
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
253+
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
250254
github.com/ryanuber/go-glob v1.0.0 h1:iQh3xXAumdQ+4Ufa5b25cRpC5TYKlno6hsv6Cb3pkBk=
251255
github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc=
252256
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
@@ -258,6 +262,8 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV
258262
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
259263
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
260264
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
265+
github.com/urfave/cli-docs/v3 v3.1.0 h1:Sa5xm19IpE5gpm6tZzXdfjdFxn67PnEsE4dpXF7vsKw=
266+
github.com/urfave/cli-docs/v3 v3.1.0/go.mod h1:59d+5Hz1h6GSGJ10cvcEkbIe3j233t4XDqI72UIx7to=
261267
github.com/urfave/cli/v3 v3.4.1 h1:1M9UOCy5bLmGnuu1yn3t3CB4rG79Rtoxuv1sPhnm6qM=
262268
github.com/urfave/cli/v3 v3.4.1/go.mod h1:FJSKtM/9AiiTOJL4fJ6TbMUkxBXn7GO9guZqoZtpYpo=
263269
github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=

0 commit comments

Comments
 (0)