1
0
mirror of https://github.com/StackExchange/dnscontrol.git synced 2024-05-11 05:55:12 +00:00

get-zones: Implement --ttl flag for pretty and dsl (#654)

This commit is contained in:
Tom Limoncelli
2020-02-25 07:23:40 -05:00
committed by GitHub
parent 8b8f193afb
commit 7789b4dbdc
4 changed files with 31 additions and 15 deletions

View File

@ -79,8 +79,7 @@ func (args *GetZoneArgs) flags() []cli.Flag {
flags = append(flags, &cli.IntFlag{
Name: "ttl",
Destination: &args.DefaultTTL,
Usage: `Default TTL`,
Value: 300,
Usage: `Default TTL (0 picks the zone's most common TTL)`,
})
return flags
}
@ -153,24 +152,34 @@ func GetZone(args GetZoneArgs) error {
z := prettyzone.PrettySort(recs, zoneName, 0, nil)
switch args.OutputFormat {
case "pretty":
fmt.Fprintf(w, "$ORIGIN %s.\n", zoneName)
prettyzone.WriteZoneFileRC(w, z.Records, zoneName, nil)
prettyzone.WriteZoneFileRC(w, z.Records, zoneName, uint32(args.DefaultTTL), nil)
fmt.Fprintln(w)
case "dsl":
fmt.Fprintf(w, `D("%s", REG_CHANGEME,`+"\n", zoneName)
fmt.Fprintf(w, "\tDnsProvider(%s)", args.CredName)
case "dsl":
fmt.Fprintf(w, `D("%s", REG_CHANGEME,`, zoneName)
fmt.Fprintf(w, "\n\tDnsProvider(%s)", args.CredName)
defaultTTL := uint32(args.DefaultTTL)
if defaultTTL == 0 {
defaultTTL = prettyzone.MostCommonTTL(recs)
}
if defaultTTL != models.DefaultTTL {
fmt.Fprintf(w, "\n\tDefaultTTL(%d)", defaultTTL)
}
for _, rec := range recs {
fmt.Fprint(w, formatDsl(zoneName, rec, uint32(args.DefaultTTL)))
fmt.Fprint(w, formatDsl(zoneName, rec, defaultTTL))
}
fmt.Fprint(w, "\n)\n")
case "tsv":
for _, rec := range recs {
fmt.Fprintf(w,
fmt.Sprintf("%s\t%s\t%d\tIN\t%s\t%s\n",
rec.NameFQDN, rec.Name, rec.TTL, rec.Type, rec.GetTargetCombined()))
}
default:
return fmt.Errorf("format %q unknown", args.OutputFile)
}