cisgo/pkg/generator/generator.go

49 lines
1.0 KiB
Go
Raw Normal View History

2022-06-13 20:39:30 +02:00
package generator
import (
"errors"
"log"
"os"
"text/template"
"git.vvoid.camp/cisgo/pkg/config"
)
type Generator struct {
Config config.Config
Template *template.Template
}
func NewGenerator(config config.Config, template *template.Template) *Generator {
return &Generator{
Config: config,
Template: template,
}
}
func (g *Generator) generateAP(ap config.AccessPoint, outputdir string) error {
f, err := os.Create(outputdir + "/" + ap.Name + ".txt")
if err != nil {
return errors.New("Could not create file: " + err.Error())
}
defer f.Close()
err = g.Template.Execute(f, ap)
if err != nil {
return errors.New("Could not execute template: " + err.Error())
}
return nil
}
func (g *Generator) Generate(outputdir string) error {
for _, ap := range g.Config.AccessPoints {
log.Println("Generating AP: " + ap.Name)
err := g.generateAP(ap, outputdir)
if err != nil {
return errors.New("Error generating AP " + ap.Name + ": " + err.Error())
}
}
return nil
}