36 lines
1.3 KiB
Go
36 lines
1.3 KiB
Go
package main
|
|
|
|
var executorsFileTemplate = `package executor
|
|
{{ range $name, $command := . }}
|
|
{{- $struct_name := capitalise $name | printf "%sExecutor" -}}
|
|
{{- $new_executor_function_name := capitalise $name | printf "New%sExecutor" -}}
|
|
{{ print "" }}
|
|
// {{ $struct_name }} is the executor for the {{ $name }} command.
|
|
type {{ $struct_name }} struct {
|
|
*flag.FlagSet
|
|
{{- range $flag := $command.Flags -}}
|
|
{{ print "" }}
|
|
{{ $flag.Flag }} {{ getFlagType $flag.Flag }}
|
|
{{- end -}}
|
|
{{ print "" }}
|
|
}
|
|
|
|
func {{ $new_executor_function_name }}() *{{ $struct_name }} {
|
|
exe := {{ $struct_name }}{
|
|
FlagSet: flag.NewFlagSet({{ printf "%q" $name }}, flag.ExitOnError),
|
|
}
|
|
{{ print "" }}
|
|
exe.Usage = commandUsageFunc({{ printf "%q" $name }}, {{ printf "%q" $command.Summary }}, showExe.FlagSet)
|
|
{{ print "" }}
|
|
{{- range $flag := $command.Flags -}}
|
|
{{- if eq (getFlagType $flag.Flag) "string" -}}
|
|
exe.StringVar(&exe.{{ $flag.Flag }}, {{ printf "%q" $flag.Flag }}, {{ printf "%q" $flag.Default }}, {{ getFlagDescription $flag.Flag | printf "%q" }})
|
|
{{- else if eq (getFlagType $flag.Flag) "bool" -}}
|
|
exe.BoolVar(&exe.{{ $flag.Flag }}, {{ printf "%q" $flag.Flag }}, {{ $flag.Default }}, {{ getFlagDescription $flag.Flag | printf "%q" }})
|
|
{{- end -}}
|
|
{{- end -}}
|
|
{{ print "" }}
|
|
return &exe
|
|
}
|
|
{{ end }}
|
|
`
|