diff options
author | jeschli <jeschli@gmail.com> | 2019-01-29 19:17:43 +0100 |
---|---|---|
committer | jeschli <jeschli@gmail.com> | 2019-01-29 19:17:43 +0100 |
commit | 924c8fb748a92720c75750cee528ac2f4b7c5c8e (patch) | |
tree | 1a3b956f7f8527e533040cee1138810fe304bbc9 /krebs/3modules/retiolum-hosts.nix | |
parent | 06b6454af78e8236a67d69cab94f62c32054be47 (diff) | |
parent | e64bbd8d6864e21f9e7b6b9a11cf95c976bdc109 (diff) |
Merge branch 'master' of prism.r:stockholm
Diffstat (limited to 'krebs/3modules/retiolum-hosts.nix')
-rw-r--r-- | krebs/3modules/retiolum-hosts.nix | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/krebs/3modules/retiolum-hosts.nix b/krebs/3modules/retiolum-hosts.nix new file mode 100644 index 000000000..ddf85ead7 --- /dev/null +++ b/krebs/3modules/retiolum-hosts.nix @@ -0,0 +1,28 @@ +with import <stockholm/lib>; +{ config, ... }: let + # TODO dedup functions with ./hosts.nix + check = hostname: any (domain: hasSuffix ".${domain}" hostname) domains; + domains = attrNames (filterAttrs (_: eq "hosts") config.krebs.dns.providers); +in { + nixpkgs.config.packageOverrides = super: { + retiolum-hosts = + super.writeText "retiolum-hosts" '' + ${ + concatStringsSep + "\n" + (flatten + (map + (host: let + net = host.nets.retiolum; + aliases = longs; + longs = filter check net.aliases; + in + optionals + (aliases != []) + (map (addr: "${addr} ${toString aliases}") net.addrs)) + (filter (host: hasAttr "retiolum" host.nets) + (attrValues config.krebs.hosts)))) + } + ''; + }; +} |