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
  60.to_u32,                                  # TTL
  "ns0.some-example.com.",                    # Master Name Server for the zone
  "john\.doe.#{domain}"                       # admin email address

zone << DSZ::NS.new "#{domain}.", 3600.to_u32, "ns1.some-example.com."
zone << DSZ::NS.new "#{domain}.", 3600.to_u32, "ns0.some-example.com."

zone << DSZ::A.new "www",   600.to_u32, "10.0.0.1"
zone << DSZ::A.new "www2",  600.to_u32, "10.0.0.2"
zone << DSZ::A.new "mail",  300.to_u32, "10.0.0.10"

zone << DSZ::CNAME.new "mail2", 600.to_u32, "www"

zone << DSZ::MX.new "mail",  300.to_u32, "mail", 10
zone << DSZ::MX.new "mail",  300.to_u32, "mail2", 5


File.write("#{domain}.json", zone.to_json)