Small codegen bits changes, add adoc template for events
This commit is contained in:
parent
529a8b52dd
commit
ef47a0d612
@ -267,7 +267,7 @@ func procDef(path, output string) {
|
||||
checkPlaceholders(e.Error, "log", e.Log)
|
||||
}
|
||||
|
||||
internal.WriteTo(tpl, tplData, "actions.gen.go.tpl", output)
|
||||
internal.WriteFormattedTo(tpl, tplData, "actions.gen.go.tpl", output)
|
||||
}
|
||||
|
||||
func (a actionDef) SeverityConstName() string {
|
||||
|
||||
31
codegen/v2/events/events.gen.adoc.tpl
Normal file
31
codegen/v2/events/events.gen.adoc.tpl
Normal file
@ -0,0 +1,31 @@
|
||||
// This is a autogenerated file
|
||||
//
|
||||
// Generated from:
|
||||
// - corteza-server/src/{{$.Service}}/service/events.yaml
|
||||
// - corteza-server/codegen/v2/events/events.gen.adoc.tpl
|
||||
//
|
||||
// To regenerate:
|
||||
// ./event-gen --service {{$.Service}} --docs ../corteza-docs/src/extdev/development/events/
|
||||
//
|
||||
|
||||
= {{ $.ResourceString }}
|
||||
|
||||
|
||||
.List of events on `{{ $.ResourceString }}`
|
||||
{{- range $event := makeEvents $.Events }}
|
||||
- `{{ $event }}`
|
||||
{{- end }}
|
||||
|
||||
.Event arguments for `{{ $.ResourceString }}`
|
||||
[%header,cols=3*]
|
||||
|===
|
||||
|Name
|
||||
|Type
|
||||
|Immutable
|
||||
|
||||
{{- range $p := $.Events.Properties }}
|
||||
|`{{ camelCase $p.Name }}`
|
||||
|`{{ $p.Type }}`
|
||||
|{{ $p.Immutable }}
|
||||
{{- end }}
|
||||
|===
|
||||
@ -169,6 +169,8 @@ func (res *{{ camelCase .ResourceIdent "base" }}) Decode(results map[string][]by
|
||||
}
|
||||
}
|
||||
}
|
||||
{{ else }}
|
||||
// Do not decode {{ $prop.Name }}; marked as immutable
|
||||
{{ end -}}
|
||||
{{ end -}}
|
||||
|
||||
|
||||
@ -12,7 +12,7 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
templateFile = "codegen/v2/events/*.go.tpl"
|
||||
templateFiles = "codegen/v2/events/*.tpl"
|
||||
)
|
||||
|
||||
type (
|
||||
@ -43,6 +43,7 @@ type (
|
||||
Command string
|
||||
YAML string
|
||||
|
||||
Service string
|
||||
Package string
|
||||
|
||||
// List of imports
|
||||
@ -58,20 +59,26 @@ type (
|
||||
}
|
||||
)
|
||||
|
||||
// Use for generating .go and .adoc files from yaml
|
||||
//
|
||||
// To generate .go files, run for each service:
|
||||
// ./event-gen --service messaging
|
||||
//
|
||||
// To generate .adoc files, run for each service + add path to docs
|
||||
//// ./event-gen --service system --docs ../corteza-docs/src/extdev/development/events/
|
||||
func main() {
|
||||
|
||||
tpl := template.New("").Funcs(map[string]interface{}{
|
||||
"camelCase": internal.CamelCase,
|
||||
"makeEvents": makeEvents,
|
||||
})
|
||||
|
||||
tpl = template.Must(tpl.ParseGlob(templateFile))
|
||||
tpl = template.Must(tpl.ParseGlob(templateFiles))
|
||||
|
||||
var (
|
||||
definitionsPathStr string
|
||||
serviceStr string
|
||||
docsPathStr string
|
||||
overwrite bool
|
||||
// outputFile string
|
||||
|
||||
decoder *yaml.Decoder
|
||||
|
||||
@ -88,8 +95,9 @@ func main() {
|
||||
)
|
||||
|
||||
flag.StringVar(&definitionsPathStr, "definitions", "", "Location of event definitions file (generated from service if omitted) and output dir")
|
||||
flag.StringVar(&serviceStr, "service", "", "Comma separated list of imports")
|
||||
flag.StringVar(&serviceStr, "service", "", "Service name (system, compose, messaging)")
|
||||
flag.BoolVar(&overwrite, "overwrite", false, "Overwrite all files")
|
||||
flag.StringVar(&docsPathStr, "docs", "", "Path to docs (generates .adoc files with documentation)")
|
||||
|
||||
flag.Parse()
|
||||
|
||||
@ -110,6 +118,7 @@ func main() {
|
||||
tplData.Command = "go run ./codegen/v2/events --service " + serviceStr
|
||||
tplData.YAML = definitionsPathStr + yamlDefFileName
|
||||
tplData.Package = "event"
|
||||
tplData.Service = serviceStr
|
||||
|
||||
defs := eventDefMap{}
|
||||
cli.HandleError(decoder.Decode(&defs))
|
||||
@ -174,17 +183,27 @@ func main() {
|
||||
|
||||
tplData.Events = evDef
|
||||
|
||||
var (
|
||||
usrOutput = fmt.Sprintf("%s%s.go", definitionsPathStr, fname)
|
||||
genOutput = fmt.Sprintf("%s/%s.gen.go", definitionsPathStr, fname)
|
||||
)
|
||||
switch true {
|
||||
case len(docsPathStr) > 0:
|
||||
var (
|
||||
docOutput = fmt.Sprintf("%s/%s/%s.gen.adoc", docsPathStr, serviceStr, fname)
|
||||
)
|
||||
|
||||
_, err := os.Stat(usrOutput)
|
||||
if overwrite || os.IsNotExist(err) {
|
||||
internal.WriteTo(tpl, tplData, "events.go.tpl", usrOutput)
|
||||
internal.WritePlainTo(tpl, tplData, "events.gen.adoc.tpl", docOutput)
|
||||
default:
|
||||
var (
|
||||
usrOutput = fmt.Sprintf("%s%s.go", definitionsPathStr, fname)
|
||||
genOutput = fmt.Sprintf("%s/%s.gen.go", definitionsPathStr, fname)
|
||||
)
|
||||
|
||||
_, err := os.Stat(usrOutput)
|
||||
if overwrite || os.IsNotExist(err) {
|
||||
internal.WriteFormattedTo(tpl, tplData, "events.go.tpl", usrOutput)
|
||||
}
|
||||
|
||||
internal.WriteFormattedTo(tpl, tplData, "events.gen.go.tpl", genOutput)
|
||||
}
|
||||
|
||||
internal.WriteTo(tpl, tplData, "events.gen.go.tpl", genOutput)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -10,11 +10,11 @@ import (
|
||||
"text/template"
|
||||
)
|
||||
|
||||
func WriteTo(tpl *template.Template, payload interface{}, name, dst string) {
|
||||
func WriteFormattedTo(tpl *template.Template, payload interface{}, tplName, dst string) {
|
||||
var output io.WriteCloser
|
||||
buf := bytes.Buffer{}
|
||||
|
||||
if err := tpl.ExecuteTemplate(&buf, name, payload); err != nil {
|
||||
if err := tpl.ExecuteTemplate(&buf, tplName, payload); err != nil {
|
||||
cli.HandleError(err)
|
||||
} else {
|
||||
fmtsrc, err := format.Source(buf.Bytes())
|
||||
@ -39,3 +39,27 @@ func WriteTo(tpl *template.Template, payload interface{}, name, dst string) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func WritePlainTo(tpl *template.Template, payload interface{}, tplName, dst string) {
|
||||
var output io.WriteCloser
|
||||
buf := bytes.Buffer{}
|
||||
|
||||
if err := tpl.ExecuteTemplate(&buf, tplName, payload); err != nil {
|
||||
cli.HandleError(err)
|
||||
} else {
|
||||
if dst == "" || dst == "-" {
|
||||
output = os.Stdout
|
||||
} else {
|
||||
// cli.HandleError(os.Remove(dst))
|
||||
if output, err = os.Create(dst); err != nil {
|
||||
cli.HandleError(err)
|
||||
}
|
||||
|
||||
defer output.Close()
|
||||
}
|
||||
|
||||
if _, err := output.Write(buf.Bytes()); err != nil {
|
||||
cli.HandleError(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,7 +6,7 @@ package event
|
||||
// system/service/event/events.yaml
|
||||
//
|
||||
// Regenerate with:
|
||||
// go run codegen/v2/events.go --service system
|
||||
// go run ./codegen/v2/events --service system
|
||||
//
|
||||
|
||||
import (
|
||||
@ -448,6 +448,8 @@ func (res *applicationBase) Decode(results map[string][]byte) (err error) {
|
||||
}
|
||||
}
|
||||
|
||||
// Do not decode oldApplication; marked as immutable
|
||||
|
||||
if res.invoker != nil {
|
||||
if r, ok := results["invoker"]; ok {
|
||||
if err = json.Unmarshal(r, res.invoker); err != nil {
|
||||
|
||||
@ -6,7 +6,7 @@ package event
|
||||
// system/service/event/events.yaml
|
||||
//
|
||||
// Regenerate with:
|
||||
// go run codegen/v2/events.go --service system
|
||||
// go run ./codegen/v2/events --service system
|
||||
//
|
||||
|
||||
import (
|
||||
|
||||
@ -6,7 +6,7 @@ package event
|
||||
// system/service/event/events.yaml
|
||||
//
|
||||
// Regenerate with:
|
||||
// go run codegen/v2/events.go --service system
|
||||
// go run ./codegen/v2/events --service system
|
||||
//
|
||||
|
||||
import (
|
||||
|
||||
@ -6,7 +6,7 @@ package event
|
||||
// system/service/event/events.yaml
|
||||
//
|
||||
// Regenerate with:
|
||||
// go run codegen/v2/events.go --service system
|
||||
// go run ./codegen/v2/events --service system
|
||||
//
|
||||
|
||||
import (
|
||||
@ -448,6 +448,8 @@ func (res *roleBase) Decode(results map[string][]byte) (err error) {
|
||||
}
|
||||
}
|
||||
|
||||
// Do not decode oldRole; marked as immutable
|
||||
|
||||
if res.invoker != nil {
|
||||
if r, ok := results["invoker"]; ok {
|
||||
if err = json.Unmarshal(r, res.invoker); err != nil {
|
||||
|
||||
@ -6,7 +6,7 @@ package event
|
||||
// system/service/event/events.yaml
|
||||
//
|
||||
// Regenerate with:
|
||||
// go run codegen/v2/events.go --service system
|
||||
// go run ./codegen/v2/events --service system
|
||||
//
|
||||
|
||||
import (
|
||||
|
||||
@ -6,7 +6,7 @@ package event
|
||||
// system/service/event/events.yaml
|
||||
//
|
||||
// Regenerate with:
|
||||
// go run codegen/v2/events.go --service system
|
||||
// go run ./codegen/v2/events --service system
|
||||
//
|
||||
|
||||
import (
|
||||
@ -160,6 +160,8 @@ func (res *sinkBase) Decode(results map[string][]byte) (err error) {
|
||||
}
|
||||
}
|
||||
|
||||
// Do not decode request; marked as immutable
|
||||
|
||||
if res.invoker != nil {
|
||||
if r, ok := results["invoker"]; ok {
|
||||
if err = json.Unmarshal(r, res.invoker); err != nil {
|
||||
|
||||
@ -6,7 +6,7 @@ package event
|
||||
// system/service/event/events.yaml
|
||||
//
|
||||
// Regenerate with:
|
||||
// go run codegen/v2/events.go --service system
|
||||
// go run ./codegen/v2/events --service system
|
||||
//
|
||||
|
||||
import (
|
||||
|
||||
@ -6,7 +6,7 @@ package event
|
||||
// system/service/event/events.yaml
|
||||
//
|
||||
// Regenerate with:
|
||||
// go run codegen/v2/events.go --service system
|
||||
// go run ./codegen/v2/events --service system
|
||||
//
|
||||
|
||||
import (
|
||||
@ -448,6 +448,8 @@ func (res *userBase) Decode(results map[string][]byte) (err error) {
|
||||
}
|
||||
}
|
||||
|
||||
// Do not decode oldUser; marked as immutable
|
||||
|
||||
if res.invoker != nil {
|
||||
if r, ok := results["invoker"]; ok {
|
||||
if err = json.Unmarshal(r, res.invoker); err != nil {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user