forked from rayjohnson/cobraman
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtemplate-mdoc.go
98 lines (95 loc) · 2.7 KB
/
template-mdoc.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
// Copyright © 2018 Ray Johnson <[email protected]>.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package cobraman
func init() {
RegisterTemplate("mdoc", "-", "use_section", mdocManTemplate)
}
// mdocManTemplate is a template what will use the mdoc macro package.
const mdocManTemplate = `.\" Man page for {{.CommandPath}}
.Dd {{ .Date.Format "January 2006"}}
{{ if .CenterHeader -}}
.Dt {{.CommandPath | dashify | backslashify | upper}} \&{{ .Section }} "{{.CenterHeader}}"
{{- else -}}
.Dt {{.CommandPath | dashify | backslashify | upper}} {{ .Section }}
{{- end }}
./" TODO: The Dt macro can take one additonal arg - what does it do?
.Os
." This file auto-generated by github.com/PaddleHQ/cobraman
.Sh NAME
.Nm {{ .CommandPath | dashify | backslashify }}
{{- if .ShortDescription }}
.Nd {{ .ShortDescription }}
{{- end }}
.Sh SYNOPSIS
{{- if .SubCommands }}
{{- range .SubCommands }}
.Nm {{ .CommandPath }} Op Fl flags Op args
{{- end }}
{{- else }}
.Nm {{ .CommandPath }}
{{- range .AllFlags }}
.Op Fl {{ if .Shorthand }}{{ .Shorthand | backslashify }} | {{ end -}}
{{ print "-" .Name | backslashify }}
{{- end }}
{{ if not .NoArgs }}.Op Fl <args>
{{- end }}
{{- end }}
.Ek
.Sh DESCRIPTION
.Nm
{{ .Description | simpleToMdoc }}
{{- if .AllFlags }}
.Pp
The options are as follows:
.Pp
.Bl -tag -width Ds -compact
{{ range .AllFlags -}}
.Pp
.It {{ if .Shorthand }}Fl {{ .Shorthand | backslashify }}, {{ end -}}
Fl {{ print "-" .Name | backslashify }}
{{- if not .NoOptDefVal }} Ar {{if .ArgHint }} {{ .ArgHint }}{{ else }} {{ .DefValue }}{{ end }}{{ end }}
{{ .Usage | backslashify }}
{{ end }}
.El
{{- end }}
{{- if .Environment }}
.Sh ENVIRONMENT
{{ .Environment | simpleToMdoc }}
{{- end }}
{{- if .Files }}
.Sh FILES
{{ .Files | simpleToMdoc }}
{{- end }}
{{- if .Bugs }}
.Sh BUGS
{{ .Bugs | simpleToMdoc }}
{{- end }}
{{- if .Examples }}
.Sh EXAMPLES
{{ .Examples | simpleToMdoc }}
{{- end }}
.Sh AUTHOR
{{- if .Author }}
{{ .Author }}
{{- end }}
.sp
Page auto-generated by rayjohnson/cobraman and spf13/cobra
{{- if .SeeAlsos }}
.Sh SEE ALSO
{{- range $index, $element := .SeeAlsos}}
{{- if $index}} ,{{end}}
.Xr {{$element.CmdPath}} {{$element.Section}}
{{- end }}
{{- end }}
." This file auto-generated by github.com/PaddleHQ/cobraman
`