{ lib, dns, stdenvNoCC, writeText, }: let zoneConfigs = lib.mapAttrs (name: path: writeText "${name}.zone" (dns.lib.toString name (import path { inherit dns lib; }))) { # Main forward zones "pvv.ntnu.no" = ./zones/pvv.ntnu.no.nix; "pvv.org" = ./zones/pvv.org.nix; # Main reverse zones "128-255.210.241.129.in-addr.arpa" = ./zones/reverse-ipv4.nix; "9.1.0.0.3.0.0.0.7.0.1.0.0.2.ip6.arpa" = ./zones/reverse-ipv6.nix; # Other zones "210.241.129.in-addr.arpa" = ./zones/reverse-ipv4-parent.nix; "nucc.org" = ./zones/nucc.org.nix; "pvv.no" = ./zones/pvv.no.nix; }; in stdenvNoCC.mkDerivation { name = "zoneConfig"; dontUnpack = true; installPhase = '' mkdir -p $out '' + (lib.concatMapAttrsStringSep "\n" (name: path: "cp ${path} $out/${name}.zone") zoneConfigs); }