commit 10d7307f26ee02620e86d153d8bfb6318250997a
parent 985797066ffaf8fb05693169c7c2c3222c704365
Author: Kirill Elagin <kirelagin@gmail.com>
Date: Sun, 28 Mar 2021 23:35:46 -0400
parent 985797066ffaf8fb05693169c7c2c3222c704365
Author: Kirill Elagin <kirelagin@gmail.com>
Date: Sun, 28 Mar 2021 23:35:46 -0400
Move writeZone to a separate util dir The problem with `writeZone` is that it produces a derivation by using `writeTextFile` from nixpkgs, which, in turn, is tricky to access from within a flake, since it depends on the `system` attribute. Moving it to a separate module will allows us to clearly separate “pure” and “impure” functions and expose them form the flake accordingly.
3 files changed, 18 insertions(+), 7 deletions(-)
diff --git a/default.nix b/default.nix @@ -6,11 +6,16 @@ let dns = import ./dns { inherit pkgs; }; + writeZone = import ./util/writeZone.nix { + inherit (dns) evalZone; + inherit (pkgs) writeTextFile; + }; in { - inherit (dns) evalZone writeZone; + inherit (dns) evalZone; inherit (dns) combinators; + inherit writeZone; toString = name: zone: toString (dns.evalZone name zone); } // dns.combinators
diff --git a/dns/default.nix b/dns/default.nix @@ -28,15 +28,10 @@ let ]; }).config.zones."${name}"; - writeZone = name: zone: - pkgs.writeTextFile { - name = "${name}.zone"; - text = toString (evalZone name zone); - }; in { - inherit evalZone writeZone; + inherit evalZone; inherit types;
diff --git a/util/writeZone.nix b/util/writeZone.nix @@ -0,0 +1,11 @@ +# SPDX-FileCopyrightText: 2021 Kirill Elagin <kirelagin@gmail.com> +# +# SPDX-License-Identifier: MIT + +{ evalZone, writeTextFile }: + +name: zone: + writeTextFile { + name = "${name}.zone"; + text = toString (evalZone name zone); + }