3
0

Add events docs template + logic

This commit is contained in:
Urban Klinc 2020-12-04 13:39:41 +01:00
parent 401f3d2c7c
commit 3b47701ffa
3 changed files with 56 additions and 20 deletions

View File

@ -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 }}

View File

@ -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") {

View File

@ -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,
})
}