New tool: write a (basic) template zone.

This commit is contained in:
Philippe Pittoli 2023-06-28 00:57:37 +02:00
parent 809b34c571
commit 316fa6a0b7

View File

@ -0,0 +1,35 @@
require "json"
require "../src/storage/zone.cr"
alias DSZ = DNSManager::Storage::Zone
#
# Create a zone file.
#
if ARGV.size < 1
puts "usage: domain"
exit 0
end
domain = ARGV[0]
zone = DSZ.new domain
#
# Add some values.
#
zone << DSZ::SOA.new "#{domain}.", # name
3600.to_u32, # TTL
"ns0.arn-fai.net.", # Master Name Server for the zone
"dnsmaster.arn-fai.net.", # admin email address
2023070100.to_u64, # serial
3600.to_u64, # refresh
600.to_u64, # retry
2419200.to_u64, # expire
600.to_u64 # minimum TTL
zone << DSZ::NS.new "#{domain}.", 3600.to_u32, "ns0.arn-fai.net."
zone << DSZ::NS.new "#{domain}.", 3600.to_u32, "alsace.tetaneutral.net."
File.write("#{domain}.json", zone.to_json)