File: commandlineGoFlags.ityped.tmpl

package info (click to toggle)
easygen 5.3.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 848 kB
  • sloc: sh: 14; makefile: 13
file content (27 lines) | stat: -rw-r--r-- 1,124 bytes parent folder | download
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
{{- define "type_struct" -}} 
// The {{.typeName}} type defines all the configurable options from cli.
{{.Prefix}}type {{.typeName}} struct { {{- range .Options}}
{{- if eq .Name "Args" }}
{{$.Prefix}}
{{$.Prefix}}	{{.Args}}
{{- else }}{{$f := stringsSplit .Flag ","}}{{ $flen := len $f }}
{{$.Prefix}}	{{.Name}}	{{.Type}}	`
{{- if gt $flen 1}}short:"{{index $f 0}}" long:"{{index $f 1}}"
{{- else}}
 {{- if le ((index $f 0) | len) 1 }}short:"{{index $f 0}}"
 {{- else}}long:"{{index $f 0}}"{{end}}
{{- end}}
{{- if .EnvV}} env:"{{printf "%s_%s" (clk2ss $.ProgramName) (clk2ss .Name)}}"{{end}} description:"{{.Usage}}"
{{- if .Value}} default:"{{.Value}}"{{end}}
{{- if .Choices}}{{range .Choices}} choice:"{{.}}"{{end}}{{end}}
{{- if .Required}} required:"true"{{end}}`{{end}}
{{- end}}
{{- if .Verbose}}
{{$.Prefix}}	Verbflg func()  `short:"v" long:"verbose" description:"Verbose mode (Multiple -v options increase the verbosity)"`
{{$.Prefix}}	Verbose int
{{- end}}
{{- if .Version}}
{{$.Prefix}}	Version func()  `short:"V" long:"version" description:"Show program version and exit"`
{{- end}}
{{$.Prefix -}} }
{{- end}}