Files
upstream-mirror b352a9a30d
Some checks failed
test / Lint (push) Failing after 3s
test / Test with Go 1.26.8 (push) Failing after 2s
snapshot of https://github.com/centrifugal/centrifugo.git (master, 2026-09-16; blobs > 131072B omitted)
2026-09-16 01:17:21 +05:00

60 lines
1.2 KiB
Go

package main
import (
"bytes"
"os"
"slices"
"strings"
"text/template"
"github.com/centrifugal/centrifugo/v6/internal/gen"
)
func main() {
generateHandlersHTTP()
generateHandlersGRPC()
generateHandlersConsumer()
generateRequestDecoder()
generateResponseEncoder()
generateResultEncoder()
}
type TemplateData struct {
RequestCapitalized string
RequestLower string
RequestSnake string
}
func generateToFile(header, funcTmpl, outFile string, excludeRequests []string, includeRequests []string) {
tmpl := template.Must(template.New("").Parse(funcTmpl))
var buf bytes.Buffer
buf.WriteString(header)
for _, req := range gen.Requests {
if slices.Contains(excludeRequests, req) {
continue
}
if len(includeRequests) > 0 && !slices.Contains(includeRequests, req) {
continue
}
err := tmpl.Execute(&buf, TemplateData{
RequestCapitalized: req,
RequestLower: strings.ToLower(req),
RequestSnake: gen.CamelToSnake(req),
})
if err != nil {
panic(err)
}
}
file, err := os.Create(outFile) //nolint:gosec // Used only for code generation.
if err != nil {
panic(err)
}
defer func() {
_ = file.Close()
}()
_, _ = buf.WriteTo(file)
}