Files
capsule/pkg/template/render.go
T
Oliver BählerandGitHub 0b11582e4a feat: add scheduler enforcement rule (#1971)
* fix(controller): decode old object for delete requests

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* chore: modernize golang

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* chore: modernize golang

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* chore: modernize golang

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* fix: preserve ca-bundles injected from external providers

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>

* feat: abstract ruling

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>

* feat: migrate events api

* feat: migrate events api

* feat: migrate events api

* feat: migrate events api

* feat: migrate events  api

* feat: migrate events api

* feat: migrate events api

* feat: migrate events api

* feat: migrate events api

* feat: migrate events api

---------

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>
Signed-off-by: Oliver Baehler <oliver@sudo-i.net>
2026-06-19 14:34:16 +02:00

49 lines
968 B
Go

// Copyright 2020-2026 Project Capsule Authors
// SPDX-License-Identifier: Apache-2.0
package template
import (
"bytes"
"fmt"
"strings"
"text/template"
"github.com/projectcapsule/capsule/pkg/template/functions"
)
func RenderTemplateBytes(
context map[string]any,
key MissingKeyOption,
tplBytes []byte,
) ([]byte, error) {
tmpl, err := template.New("tpl").
Option("missingkey=" + key.String()).
Funcs(functions.ExtraFuncMap()).
Parse(string(tplBytes))
if err != nil {
return nil, fmt.Errorf("parse template: %w", err)
}
var rendered bytes.Buffer
if err := tmpl.Execute(&rendered, context); err != nil {
return nil, fmt.Errorf("execute template: %w", err)
}
return rendered.Bytes(), nil
}
func withLineNumbers(s string) string {
lines := strings.Split(s, "\n")
width := len(fmt.Sprintf("%d", len(lines)))
var b strings.Builder
for i, line := range lines {
fmt.Fprintf(&b, "%*d | %s\n", width, i+1, line)
}
return b.String()
}