From ad83a34437aeeca39ddd9edcc7242fc6e4377d94 Mon Sep 17 00:00:00 2001 From: Philippe Pittoli Date: Sun, 7 May 2023 04:11:19 +0200 Subject: [PATCH] Add tool to write zone file (in JSON). --- tools/write-zone-file.cr | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 tools/write-zone-file.cr 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)