diff options
| author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2026-09-28 22:04:45 +0200 |
|---|---|---|
| committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2026-09-28 22:04:45 +0200 |
| commit | 3e54e64ec074f4bec4051c4e448ba08196dbd3f9 (patch) | |
| tree | 29331e250cea2a9ff9d1628681b88af4d5584354 /zones/default.nix | |
| parent | modules/mail: Add `soispha@b-peetz.de` as a separate user (diff) | |
| download | nixos-server-3e54e64ec074f4bec4051c4e448ba08196dbd3f9.zip | |
Diffstat (limited to '')
| -rw-r--r-- | zones/default.nix | 44 |
1 files changed, 39 insertions, 5 deletions
diff --git a/zones/default.nix b/zones/default.nix index de03a0d..dc3eb9f 100644 --- a/zones/default.nix +++ b/zones/default.nix @@ -1,6 +1,40 @@ -{lib, ...}: { - "vhack.eu" = import ./vhack.eu/zone.nix {inherit lib;}; - "j-schoeffel.de" = import ./j-schoeffel.de/zone.nix {inherit lib;}; - "jaki-schoeffel.de" = import ./jaki-schoeffel.de/zone.nix {inherit lib;}; - "jaki.li" = import ./jaki.li/zone.nix {inherit lib;}; +{lib, ...}: let + /* + Computes a reasonable value for the DNS serial number from the date of last change + and the iteration of that day. + + # Type + + mkSerial :: Number -> Number -> Number -> Number -> Number + + # Arguments + + year + : The year of the last change in the format YYYY. + + month + : The month of the last change in the format MM. + + day + : The day of the last change in the format DD. + + iteration + : The number of change on that day. The format should be CC (assuming there are less + than 100 changes happening on a day) . + + # Examples + + mkSerial 2025 04 01 01 + => 2025040101 + */ + mkSerial = year: month: day: iteration: let + n2 = lib.strings.fixedWidthNumber 2; + n4 = lib.strings.fixedWidthNumber 4; + in + lib.strings.toIntBase10 "${n4 year}${n2 month}${n2 day}${n2 iteration}"; +in { + "vhack.eu" = import ./vhack.eu/zone.nix {inherit mkSerial;}; + "j-schoeffel.de" = import ./j-schoeffel.de/zone.nix {inherit mkSerial;}; + "jaki-schoeffel.de" = import ./jaki-schoeffel.de/zone.nix {inherit mkSerial;}; + "jaki.li" = import ./jaki.li/zone.nix {inherit mkSerial;}; } |
