From 9e97e6484722e26aab3978d027e85d394f170495 Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Thu, 3 Oct 2019 00:12:47 +0200 Subject: [PATCH] lib/modules: Switch _module.args from attrsOf to lazyAttrsOf --- lib/modules.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/modules.nix b/lib/modules.nix index 228cde002db9..e2315290ff0d 100644 --- a/lib/modules.nix +++ b/lib/modules.nix @@ -41,7 +41,13 @@ rec { options = { _module.args = mkOption { - type = types.attrsOf types.unspecified; + # Because things like `mkIf` are entirely useless for + # `_module.args` (because there's no way modules can check which + # arguments were passed), we'll use `lazyAttrsOf` which drops + # support for that, in turn it's lazy in its values. This means e.g. + # a `_module.args.pkgs = import (fetchTarball { ... }) {}` won't + # start a download when `pkgs` wasn't evaluated. + type = types.lazyAttrsOf types.unspecified; internal = true; description = "Arguments passed to each module."; };