enbas/cmd/enbas-cli-generators/templates.go

56 lines
1.7 KiB
Go
Raw Normal View History

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
{{- if $command.UsePrinter }}
printer *printer.Printer
{{- end }}
{{- if $command.UseConfig }}
config *config.Config
{{- end }}
{{- range $flag := $command.Flags -}}
{{ print "" }}
{{ $flag.Flag }} {{ getFlagType $flag.Flag }}
{{- end -}}
{{ print "" }}
}
func {{ $new_executor_function_name }}(
{{- if $command.UsePrinter }}
printer *printer.Printer,
{{- end }}
{{- if $command.UseConfig }}
config *config.Config,
{{- end }}
) *{{ $struct_name }} {
exe := {{ $struct_name }}{
FlagSet: flag.NewFlagSet({{ printf "%q" $name }}, flag.ExitOnError),
{{- if $command.UsePrinter }}
printer: printer,
{{- end }}
{{- if $command.UseConfig }}
config: config,
{{- end }}
}
{{ print "" }}
2024-08-09 18:57:00 +01:00
exe.Usage = commandUsageFunc({{ printf "%q" $name }}, {{ printf "%q" $command.Summary }}, exe.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 }}
`