Modification : vm_{host,hosted,remote} -> {host,local,remote}/ .
[lhc/ateliers.git] / etc / sv / nsd3 / local.sh
diff --git a/etc/sv/nsd3/local.sh b/etc/sv/nsd3/local.sh
new file mode 100644 (file)
index 0000000..b05c73e
--- /dev/null
@@ -0,0 +1,42 @@
+"$tool"/local/apt-get-install nsd
+"$tool"/local/insserv-remove  nsd3
+
+sudo install -d -m 750 -o root -g nsd \
+ /etc/nsd3/zone.d
+{
+       cat <<-EOF
+               server:
+                       ip-address: $vm_ipv4
+                       ip4-only: yes
+               EOF
+       cat "$tool"/etc/nsd3/nsd.conf
+       for zone in $(find "$tool"/etc/nsd3/zone.d \
+        -mindepth 1 -maxdepth 1 -type f \
+        -false ${@:+$(printf -- '-or -name %s.conf\n' "$@")} \
+        -printf '%f\n')
+        do zone=${zone%.conf}
+               if test -e "$tool"/etc/nsd3/zone.d/"$zone".zone.m4
+                then m4 \
+                        --define=ZONE_DOMAIN=$zone \
+                        --define=ZONE_SERIAL=$(cd "$tool" && git log -1 --format="%ct" -- etc/nsd3/zone.d/"$zone".zone.m4) \
+                        --define=VM_IP4=$vm_ipv4 \
+                               "$tool"/etc/nsd3/zone.d/"$zone".zone.m4
+                else cat "$tool"/etc/nsd3/zone.d/"$zone".zone
+                fi |
+               sudo install -m 440 -o root -g nsd /dev/stdin \
+                /etc/nsd3/zone.d/"$zone".zone
+               cat <<-EOF
+                       zone:
+                               name: $zone
+                               zonefile: /etc/nsd3/zone.d/$zone.zone
+                               $(cat "$tool"/etc/nsd3/zone.d/"$zone".conf)
+                       EOF
+        done
+} |
+sudo install -m 640 -o root -g nsd /dev/stdin \
+ /etc/nsd3/nsd.conf
+
+"$tool"/local/runit-sv-start "$sv"
+sudo nsdc rebuild
+sudo nsdc reload
+#sudo nsdc notify