21790114b15be05fca97853a7e41c7763595bdb1
Author Christian Muehlhaeuser <muesli@gmail.com> Committer Toby Padilla <tobypadilla@gmail.com> Date 2022-02-16 17:16 UTC
Message Generate man page when built with 'mango' build-tag
When building with the 'mango' build-tag (go build -tags mango) enabled,
we will simply generate and print a man-page on startup and immediately
exit again.
Diff 1 diff --git a/cmd/soft/man.go b/cmd/soft/man.go
2 new file mode 100644
3 index 0000000000000000000000000000000000000000..1ddcd306a01d149f0e65dfcb559b22521c8dcfc1
4 --- /dev/null
5 +++ b/cmd/soft/man.go
6 @@ -0,0 +1,25 @@
7 +//go:build mango
8 +// +build mango
9 +
10 +package main
11 +
12 +import (
13 + "flag"
14 + "fmt"
15 + "os"
16 +
17 + "github.com/muesli/mango"
18 + "github.com/muesli/mango/mflag"
19 + "github.com/muesli/roff"
20 +)
21 +
22 +func init() {
23 + manPage := mango.NewManPage(1, "soft", "A self-hostable Git server for the command line").
24 + WithLongDescription("Soft Serve is a self-hostable Git server for the command line.").
25 + WithSection("Copyright", "(C) 2021-2022 Charmbracelet, Inc.\n"+
26 + "Released under MIT license.")
27 +
28 + flag.VisitAll(mflag.FlagVisitor(manPage))
29 + fmt.Println(manPage.Build(roff.NewDocument()))
30 + os.Exit(0)
31 +}
32 diff --git a/go.mod b/go.mod
33 index fad69374307dd3260c3b4900262899e57d855e71..57d0ed3ea06a7b1ff40dfe4ac823ac429adf151f 100644
34 --- a/go.mod
35 +++ b/go.mod
36 @@ -22,6 +22,11 @@ require (
37 gopkg.in/yaml.v2 v2.4.0
38 )
39
40 +require (
41 + github.com/muesli/mango v0.1.0
42 + github.com/muesli/roff v0.1.0
43 +)
44 +
45 require (
46 github.com/Microsoft/go-winio v0.5.1 // indirect
47 github.com/ProtonMail/go-crypto v0.0.0-20220113124808-70ae35bab23f // indirect
48 diff --git a/go.sum b/go.sum
49 index e81c7e4c75c1e2f0515d2541cc48d6429d2f9917..6c43ed67fbe3f4a813e4f1570d183b2a52fe8200 100644
50 --- a/go.sum
51 +++ b/go.sum
52 @@ -104,9 +104,13 @@ github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrk
53 github.com/muesli/ansi v0.0.0-20211018074035-2e021307bc4b/go.mod h1:fQuZ0gauxyBcmsdE3ZT4NasjaRdxmbCS0jRHsrWu3Ho=
54 github.com/muesli/ansi v0.0.0-20211031195517-c9f0611b6c70 h1:kMlmsLSbjkikxQJ1IPwaM+7LJ9ltFu/fi8CRzvSnQmA=
55 github.com/muesli/ansi v0.0.0-20211031195517-c9f0611b6c70/go.mod h1:fQuZ0gauxyBcmsdE3ZT4NasjaRdxmbCS0jRHsrWu3Ho=
56 +github.com/muesli/mango v0.1.0 h1:DZQK45d2gGbql1arsYA4vfg4d7I9Hfx5rX/GCmzsAvI=
57 +github.com/muesli/mango v0.1.0/go.mod h1:5XFpbC8jY5UUv89YQciiXNlbi+iJgt29VDC5xbzrLL4=
58 github.com/muesli/reflow v0.2.1-0.20210115123740-9e1d0d53df68/go.mod h1:Xk+z4oIWdQqJzsxyjgl3P22oYZnHdZ8FFTHAQQt5BMQ=
59 github.com/muesli/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s=
60 github.com/muesli/reflow v0.3.0/go.mod h1:pbwTDkVPibjO2kyvBQRBxTWEEGDGq0FlB1BIKtnHY/8=
61 +github.com/muesli/roff v0.1.0 h1:YD0lalCotmYuF5HhZliKWlIx7IEhiXeSfq7hNjFqGF8=
62 +github.com/muesli/roff v0.1.0/go.mod h1:pjAHQM9hdUUwm/krAfrLGgJkXJ+YuhtsfZ42kieB2Ig=
63 github.com/muesli/termenv v0.9.0/go.mod h1:R/LzAKf+suGs4IsO95y7+7DpFHO0KABgnZqtlyx2mBw=
64 github.com/muesli/termenv v0.11.0 h1:fwNUbu2mfWlgicwG7qYzs06aOI8Z/zKPAv8J4uKbT+o=
65 github.com/muesli/termenv v0.11.0/go.mod h1:Bd5NYQ7pd+SrtBSrSNoBBmXlcY8+Xj4BMJgh8qcZrvs=