diff --git a/tools/write-zone-file.cr b/tools/write-zone-file.cr new file mode 100644 index 0000000..853ead5 --- /dev/null +++ b/tools/write-zone-file.cr @@ -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.resources << DSZ::A.new "www", 600.to_u32, "10.0.0.1" +zone.resources << DSZ::A.new "www2", 600.to_u32, "10.0.0.2" + +zone.resources << DSZ::SOA.new "#{domain}.", # name + 60.to_u32, # TTL + "IN", # target (??) + "ns0.some-example.com.", # Master Name Server for the zone + "john\.doe.#{domain}" # admin email address + +zone.resources << DSZ::NS.new "#{domain}.", 3600.to_u32, "ns1.some-example.com." +zone.resources << DSZ::NS.new "#{domain}.", 3600.to_u32, "ns0.some-example.com." + + +File.write("#{domain}.json", zone.to_json)