Changed generate functions to return config as bytes

This commit is contained in:
David J. Allen 2024-04-11 12:44:32 -06:00
parent 977ddf8a79
commit 80c9eb29a6
No known key found for this signature in database
GPG key ID: 717C593FF60A2ACC
2 changed files with 9 additions and 7 deletions

View file

@ -1,7 +1,7 @@
package generator
import (
"os"
"bytes"
"fmt"
@ -26,13 +26,13 @@ func (g *Generator) GenerateDNS(config *configurator.Config) {
// TODO: print generated config file to STDOUT
}
func (g *Generator) GenerateDHCP(config *configurator.Config, eths []configurator.EthernetInterface) error {
func (g *Generator) GenerateDHCP(config *configurator.Config, eths []configurator.EthernetInterface) ([]byte, error) {
// generate file using gonja template
path := config.TemplatePaths[g.Template]
fmt.Printf("path: %s\neth count: %v\n", path, len(eths))
t, err := gonja.FromFile(path)
if err != nil {
return fmt.Errorf("failed to read template from file: %v", err)
return nil, fmt.Errorf("failed to read template from file: %v", err)
}
template := "# ========== GENERATED BY OCHAMI CONFIGURATOR ==========\n"
for _, eth := range eths {
@ -46,9 +46,10 @@ func (g *Generator) GenerateDHCP(config *configurator.Config, eths []configurato
data := exec.NewContext(map[string]any{
"hosts": template,
})
if err = t.Execute(os.Stdout, data); err != nil {
return fmt.Errorf("failed to execute: %v", err)
b := bytes.Buffer{}
if err = t.Execute(&b, data); err != nil {
return nil, fmt.Errorf("failed to execute: %v", err)
}
return nil
return b.Bytes(), nil
}