diff --git a/deployment/check/common/data-model.nix b/deployment/check/common/data-model.nix index e45eaa02..81a798af 100644 --- a/deployment/check/common/data-model.nix +++ b/deployment/check/common/data-model.nix @@ -26,18 +26,8 @@ let httpBackend ; inherit (lib) mkOption types; - eval = - module: - (lib.evalModules { - specialArgs = { - inherit pkgs inputs; - }; - modules = [ - module - ../../data-model.nix - ]; - }).config; - fediversity = eval ( + inherit (pkgs.callPackage ../../utils.nix { inherit inputs; }) evalModel; + fediversity = evalModel ( { config, ... }: { config = { diff --git a/deployment/check/data-model-nixops4/nixosTest.nix b/deployment/check/data-model-nixops4/nixosTest.nix index 5a4499f3..e82bb8f5 100644 --- a/deployment/check/data-model-nixops4/nixosTest.nix +++ b/deployment/check/data-model-nixops4/nixosTest.nix @@ -14,6 +14,7 @@ sourceFileset = lib.fileset.unions [ ../../data-model.nix ../../function.nix + ../../utils.nix ../common/data-model.nix ../common/data-model-options.nix ./constants.nix diff --git a/deployment/data-model-test.nix b/deployment/data-model-test.nix index 9a27ad31..7f1b511f 100644 --- a/deployment/data-model-test.nix +++ b/deployment/data-model-test.nix @@ -2,17 +2,7 @@ let inherit (import ../default.nix { }) pkgs inputs; inherit (pkgs) lib; inherit (lib) mkOption types; - eval = - module: - (lib.evalModules { - specialArgs = { - inherit pkgs inputs; - }; - modules = [ - module - ./data-model.nix - ]; - }).config; + inherit (pkgs.callPackage ./utils.nix { inherit inputs; }) evalModel; inherit (inputs.nixops4.lib) mkDeployment; in { @@ -30,7 +20,7 @@ in */ expr = let - fediversity = eval ( + fediversity = evalModel ( { config, ... }: { config = { diff --git a/deployment/data-model.nix b/deployment/data-model.nix index fba36399..12873107 100644 --- a/deployment/data-model.nix +++ b/deployment/data-model.nix @@ -18,16 +18,7 @@ let str submodule ; - toBash = - v: - lib.replaceStrings [ "\"" ] [ "\\\"" ] ( - if lib.isPath v || builtins.isNull v then - toString v - else if lib.isString v then - v - else - lib.strings.toJSON v - ); + inherit (pkgs.callPackage ./utils.nix { }) toBash; withPackages = packages: { makeWrapperArgs = [ "--prefix" diff --git a/deployment/run/tf-setup.nix b/deployment/run/tf-setup.nix index 871a8474..37328fe5 100644 --- a/deployment/run/tf-setup.nix +++ b/deployment/run/tf-setup.nix @@ -5,17 +5,7 @@ httpBackend, }: let - # FIXME factor out - toBash = - v: - lib.replaceStrings [ "\"" ] [ "\\\"" ] ( - if lib.isPath v || builtins.isNull v then - toString v - else if lib.isString v then - v - else - lib.strings.toJSON v - ); + inherit (pkgs.callPackage ../utils.nix { }) toBash; in pkgs.writeScriptBin "setup" '' set -e diff --git a/deployment/utils.nix b/deployment/utils.nix new file mode 100644 index 00000000..1229bf37 --- /dev/null +++ b/deployment/utils.nix @@ -0,0 +1,29 @@ +{ + pkgs, + lib, + inputs ? null, + ... +}: +{ + evalModel = + module: + (lib.evalModules { + specialArgs = { + inherit pkgs inputs; + }; + modules = [ + ./data-model.nix + module + ]; + }).config; + toBash = + v: + lib.replaceStrings [ "\"" ] [ "\\\"" ] ( + if lib.isPath v || builtins.isNull v then + toString v + else if lib.isString v then + v + else + lib.strings.toJSON v + ); +}