--- a/README.md Fri Feb 27 17:02:44 2015 +0200
+++ b/README.md Fri Feb 27 17:03:15 2015 +0200
@@ -283,6 +283,59 @@
### `var/zones/`
Generated zonefiles, loaded by bind.
+# *pvl-dns*
+Low-level zonefile utilities.
+
+## `bin/pvl.dns-process`
+Process a zonefile to modify:
+
+* `SOA` record serial
+* `$INCLUDE` paths
+
+ $ cat etc/zones/test
+ $TTL 3600
+
+ @ SOA foo.test. hostmaster.test. (
+ 0 ; serial
+ 1d ; refresh
+ 5m ; retry
+ 10d ; expiry
+ 300 ; negative
+ )
+
+ NS foo
+ NS bar
+
+ $INCLUDE "forward/test"
+
+ $ bin/pvl.dns-process --serial $(date +%s) --include-path var/zones etc/zones/test
+ $TTL 3600
+ @ SOA foo.test. hostmaster.test. 1425049088 1d 5m 10d 300
+ NS foo
+ NS bar
+ $INCLUDE "var/zones/forward/test"
+
+## `bin/pvl.dns-zone`
+Load a zonefile and output any ZoneRecords that it contains, including `$GENERATE`ed and `$INCLUDE`ed records:
+
+ $ bin/pvl.dns-zone --zone=test var/zones/test
+ @ 3600 SOA foo.test. hostmaster.test. 1425049248 1d 5m 10d 300
+ @ 3600 NS foo
+ @ 3600 NS bar
+ foo 3600 A 192.0.2.1
+ bar 3600 A 192.0.2.2
+ quux.asdf 3600 A 192.0.2.5
+
+
+Optionally `--check-hosts` for dupliates `A`/`AAAA` records.
+
+Use `--reverse-prefix=192.0.2` to generate a reverse-dns zone from `A`/`AAAA` records:
+
+ $ bin/pvl.dns-zone --zone=test var/zones/test --reverse-prefix=192.0.2
+ 1 PTR foo.test.
+ 2 PTR bar.test.
+ 5 PTR quux.asdf.test.
+
# Experimental features
Features that are still under development
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/zones/test Fri Feb 27 17:03:15 2015 +0200
@@ -0,0 +1,14 @@
+$TTL 3600
+
+@ SOA foo.test. hostmaster.test. (
+ 0 ; serial
+ 1d ; refresh
+ 5m ; retry
+ 10d ; expiry
+ 300 ; negative
+ )
+
+ NS foo
+ NS bar
+
+$INCLUDE "forward/test"