pancheri/zone.go

53 lines
1.2 KiB
Go

package pancheri
import (
"fmt"
"time"
)
type Zone struct {
Root string
ReducedHash string
Zonefile string
ARecords []RecordA
AAAARecords []RecordAAAA
CNAMERecords []RecordCNAME
TXTRecords []RecordTXT
}
func (z *Zone) RenderZone() string {
outString := ""
outString += fmt.Sprintf(";; Rendered zonefile for %s (rsha %s) at %s\n", z.Zonefile, z.ReducedHash, time.Now().Format(time.RFC3339))
outString += ";; Generated by pancheri-render. Note: this will NOT work out of the box!\n"
outString += ";; At the very least, you'll need to change the SOA and NS values.\n"
outString += "\n"
outString += ";; SOA & NS records\n"
outString += ";; TODO\n"
outString += "\n"
outString += ";; A Records\n"
for _, record := range z.ARecords {
outString += record.Render().String() + "\n"
}
outString += ";; AAAA Records\n"
for _, record := range z.AAAARecords {
outString += record.Render().String() + "\n"
}
outString += ";; CNAME Records\n"
for _, record := range z.CNAMERecords {
outString += record.Render().String() + "\n"
}
outString += ";; TXT Records\n"
for _, record := range z.TXTRecords {
outString += record.Render().String() + "\n"
}
return outString
}