From 3b47701ffaceae056dea75fff92a2970ec705d89 Mon Sep 17 00:00:00 2001 From: Urban Klinc Date: Fri, 4 Dec 2020 13:39:41 +0100 Subject: [PATCH] Add events docs template + logic --- pkg/codegen/assets/events.gen.adoc.tpl | 55 +++++++++++++++++--------- pkg/codegen/codegen.go | 8 +++- pkg/codegen/events.go | 13 ++++++ 3 files changed, 56 insertions(+), 20 deletions(-) diff --git a/pkg/codegen/assets/events.gen.adoc.tpl b/pkg/codegen/assets/events.gen.adoc.tpl index 723656f5b..885cb899f 100644 --- a/pkg/codegen/assets/events.gen.adoc.tpl +++ b/pkg/codegen/assets/events.gen.adoc.tpl @@ -4,26 +4,45 @@ // the code is regenerated. // // Definitions file that controls how this file is generated: -// {{ .Source }} - -= {{ $.ResourceString }} - - -.List of events on `{{ $.ResourceString }}` -{{- range $event := $.Events.MakeEvents }} -- `{{ $event }}` +{{- range .Definitions }} +// - {{ .Source }} {{- end }} -.Event arguments for `{{ $.ResourceString }}` -[%header,cols=3*] -|=== -|Name -|Type -|Immutable +{{- range .Definitions }} +{{- range .Resources }} -{{- range $p := $.Events.Properties }} -|`{{ camelCase $p.Name }}` -|`{{ $p.Type }}` -|{{ $p.Immutable }} += {{ .ResourceString }} + +== Events + +.Events: +{{- range $ba := .BeforeAfter }} +* `before('{{ $ba }}')` {{- end }} +{{- range $ba := .BeforeAfter }} +* `after('{{ $ba }}')` +{{- end }} +{{- range $on := .On }} +* `on('{{ $on }}')` +{{- end }} + +== Argument properties + +.Argument properties: +[%header, cols=3*] |=== +|Name|Type|Immutable +{{- range $p := .Properties }} +| `{{ $p.Name }}` +| `{{ $p.Type }}` +{{- if $p.Immutable }} +| yes +{{ else }} +| no +{{ end -}} + +{{ end -}} +|=== + +{{- end }} +{{- end }} diff --git a/pkg/codegen/codegen.go b/pkg/codegen/codegen.go index 8ad6243f4..1a05f38be 100644 --- a/pkg/codegen/codegen.go +++ b/pkg/codegen/codegen.go @@ -3,12 +3,13 @@ package codegen import ( "flag" "fmt" - "github.com/Masterminds/sprig" - "github.com/fsnotify/fsnotify" "os" "path/filepath" "strings" "text/template" + + "github.com/Masterminds/sprig" + "github.com/fsnotify/fsnotify" ) func Proc() { @@ -191,6 +192,9 @@ func Proc() { if genCode { err = genEvents(tpls, eventDefs...) } + if genDocs && err == nil { + err = genEventsDocs(tpls, docPath+docPathOptions, eventDefs...) + } } if outputErr(err, "failed to process events:\n") { diff --git a/pkg/codegen/events.go b/pkg/codegen/events.go index 8f333a4b3..132d398ee 100644 --- a/pkg/codegen/events.go +++ b/pkg/codegen/events.go @@ -203,3 +203,16 @@ func makeEventGroup(pfix string, ee []string) (out []string) { return } + +func genEventsDocs(tpl *template.Template, docsPath string, dd ...*eventsDef) (err error) { + var ( + tplEventsAdoc = tpl.Lookup("events.gen.adoc.tpl") + + dst string + ) + + dst = path.Join(docsPath, "events_env_variables.gen.adoc") + return plainTemplate(dst, tplEventsAdoc, map[string]interface{}{ + "Definitions": dd, + }) +}