2024-08-09 17:16:35 +01:00
|
|
|
package main
|
|
|
|
|
2024-08-11 16:13:35 +01:00
|
|
|
var executorsFileTemplate = `/*
|
2024-08-10 08:51:53 +01:00
|
|
|
This file is generated by ./cmd/enbas-cli-generators
|
|
|
|
DO NOT EDIT.
|
|
|
|
*/
|
2024-08-11 16:13:35 +01:00
|
|
|
{{ print "" }}
|
|
|
|
package executor
|
|
|
|
{{ print "" }}
|
|
|
|
{{ print "" }}
|
|
|
|
import internalFlag "codeflow.dananglin.me.uk/apollo/enbas/internal/flag"
|
2024-08-09 17:16:35 +01:00
|
|
|
{{ 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
|
2024-08-09 17:35:44 +01:00
|
|
|
{{- if $command.UsePrinter }}
|
|
|
|
printer *printer.Printer
|
|
|
|
{{- end }}
|
|
|
|
{{- if $command.UseConfig }}
|
|
|
|
config *config.Config
|
|
|
|
{{- end }}
|
2024-08-09 17:16:35 +01:00
|
|
|
{{- range $flag := $command.Flags -}}
|
2024-08-11 16:13:35 +01:00
|
|
|
{{- $flag_type := getFlagType $flag.Flag -}}
|
|
|
|
{{- if internalFlagValue $flag_type -}}
|
|
|
|
{{ print "" }}
|
|
|
|
{{ flagFieldName $flag }} internalFlag.{{ $flag_type }}
|
|
|
|
{{- else -}}
|
2024-08-09 17:16:35 +01:00
|
|
|
{{ print "" }}
|
2024-08-11 16:13:35 +01:00
|
|
|
{{ flagFieldName $flag }} {{ $flag_type }}
|
|
|
|
{{- end -}}
|
2024-08-09 17:16:35 +01:00
|
|
|
{{- end -}}
|
2024-08-09 19:28:03 +01:00
|
|
|
{{- range $field := $command.AdditionalFields -}}
|
|
|
|
{{ print "" }}
|
|
|
|
{{ $field.Name }} {{ $field.Type }}
|
|
|
|
{{- end -}}
|
2024-08-09 17:16:35 +01:00
|
|
|
{{ print "" }}
|
|
|
|
}
|
|
|
|
|
2024-08-09 17:35:44 +01:00
|
|
|
func {{ $new_executor_function_name }}(
|
|
|
|
{{- if $command.UsePrinter }}
|
|
|
|
printer *printer.Printer,
|
|
|
|
{{- end }}
|
|
|
|
{{- if $command.UseConfig }}
|
|
|
|
config *config.Config,
|
|
|
|
{{- end }}
|
2024-08-09 19:28:03 +01:00
|
|
|
{{- range $field := $command.AdditionalFields -}}
|
|
|
|
{{ print "" }}
|
|
|
|
{{ $field.Name }} {{ $field.Type }},
|
|
|
|
{{- end -}}
|
|
|
|
{{ print "" }}
|
2024-08-09 17:35:44 +01:00
|
|
|
) *{{ $struct_name }} {
|
2024-08-09 17:16:35 +01:00
|
|
|
exe := {{ $struct_name }}{
|
|
|
|
FlagSet: flag.NewFlagSet({{ printf "%q" $name }}, flag.ExitOnError),
|
2024-08-09 17:35:44 +01:00
|
|
|
{{- if $command.UsePrinter }}
|
|
|
|
printer: printer,
|
|
|
|
{{- end }}
|
|
|
|
{{- if $command.UseConfig }}
|
|
|
|
config: config,
|
|
|
|
{{- end }}
|
2024-08-10 16:23:00 +01:00
|
|
|
{{- range $flag := $command.Flags -}}
|
|
|
|
{{- $flag_type := getFlagType $flag.Flag -}}
|
2024-08-11 16:13:35 +01:00
|
|
|
{{- if internalFlagValue $flag_type -}}
|
2024-08-10 16:23:00 +01:00
|
|
|
{{ print "" }}
|
2024-08-11 16:13:35 +01:00
|
|
|
{{ flagFieldName $flag }}: internalFlag.New{{ $flag_type }}(),
|
2024-08-10 16:23:00 +01:00
|
|
|
{{- end -}}
|
|
|
|
{{- end -}}
|
2024-08-09 19:28:03 +01:00
|
|
|
{{- range $field := $command.AdditionalFields -}}
|
|
|
|
{{ print "" }}
|
|
|
|
{{ $field.Name }}: {{ $field.Name }},
|
|
|
|
{{- end -}}
|
|
|
|
{{ print "" }}
|
2024-08-09 17:16:35 +01:00
|
|
|
}
|
|
|
|
{{ print "" }}
|
2024-08-09 18:57:00 +01:00
|
|
|
exe.Usage = commandUsageFunc({{ printf "%q" $name }}, {{ printf "%q" $command.Summary }}, exe.FlagSet)
|
2024-08-09 17:16:35 +01:00
|
|
|
{{ print "" }}
|
|
|
|
{{- range $flag := $command.Flags -}}
|
2024-08-10 16:23:00 +01:00
|
|
|
{{- $flag_type := getFlagType $flag.Flag -}}
|
|
|
|
{{- if eq $flag_type "string" -}}
|
2024-08-09 23:37:50 +01:00
|
|
|
{{ print "" }}
|
2024-08-10 08:51:53 +01:00
|
|
|
exe.StringVar(&exe.{{ flagFieldName $flag }}, {{ printf "%q" $flag.Flag }}, {{ printf "%q" $flag.Default }}, {{ getFlagDescription $flag.Flag | printf "%q" }})
|
2024-08-10 16:23:00 +01:00
|
|
|
{{- else if eq $flag_type "bool" -}}
|
2024-08-09 23:37:50 +01:00
|
|
|
{{ print "" }}
|
2024-08-10 08:51:53 +01:00
|
|
|
exe.BoolVar(&exe.{{ flagFieldName $flag }}, {{ printf "%q" $flag.Flag }}, {{ $flag.Default }}, {{ getFlagDescription $flag.Flag | printf "%q" }})
|
2024-08-11 11:49:47 +01:00
|
|
|
{{- else if eq $flag_type "int" -}}
|
|
|
|
{{ print "" }}
|
|
|
|
exe.IntVar(&exe.{{ flagFieldName $flag }}, {{ printf "%q" $flag.Flag }}, {{ $flag.Default }}, {{ getFlagDescription $flag.Flag | printf "%q" }})
|
2024-08-11 16:13:35 +01:00
|
|
|
{{- else if internalFlagValue $flag_type -}}
|
2024-08-10 16:23:00 +01:00
|
|
|
{{ print "" }}
|
|
|
|
exe.Var(&exe.{{ flagFieldName $flag }}, {{ printf "%q" $flag.Flag }}, {{ getFlagDescription $flag.Flag | printf "%q" }})
|
2024-08-09 17:16:35 +01:00
|
|
|
{{- end -}}
|
|
|
|
{{- end -}}
|
|
|
|
{{ print "" }}
|
2024-08-11 11:49:47 +01:00
|
|
|
{{ print "" }}
|
2024-08-09 17:16:35 +01:00
|
|
|
return &exe
|
|
|
|
}
|
|
|
|
{{ end }}
|
|
|
|
`
|