diff --git a/API_GUIDE.md b/API_GUIDE.md index 24de77d..9d27da5 100644 --- a/API_GUIDE.md +++ b/API_GUIDE.md @@ -58,7 +58,7 @@ The following module arguments are available: - `inputs`: value of inputs option - `outputs`: resulting output (i.e. final flake attributes) - `pkgsFor`: attrset mapping systems to the pkgs set for that system -- `moduleArgs`: All of the above arguments (passed to auto-loaded files) +- `moduleArgs`: All of the available arguments (passed to auto-loaded files) ## Additional pkgs values diff --git a/builtinModules/moduleArgs.nix b/builtinModules/moduleArgs.nix index 66d788b..f4cd732 100644 --- a/builtinModules/moduleArgs.nix +++ b/builtinModules/moduleArgs.nix @@ -2,19 +2,7 @@ # Copyright (C) 2023 Archit Gupta # SPDX-License-Identifier: MIT -{ config -, options -, src -, lib -, flakelight -, inputs -, outputs -, pkgsFor -, genSystems -, specialArgs -, modulesPath -, moduleArgs -}@args: +{ config, ... }@args: { - _module.args.moduleArgs = args; + _module.args.moduleArgs = args // config._module.args; } diff --git a/tests/default.nix b/tests/default.nix index 207f037..0f3d957 100644 --- a/tests/default.nix +++ b/tests/default.nix @@ -69,15 +69,31 @@ in })) (f: f.test); - outputs-moduleArgs = test + moduleArgs = test (flakelight ./empty ({ moduleArgs, ... }: { outputs = { inherit moduleArgs; }; })) - (f: f.moduleArgs ? lib + (f: f.moduleArgs ? config + && f.moduleArgs ? options && f.moduleArgs ? src + && f.moduleArgs ? lib + && f.moduleArgs ? flakelight && f.moduleArgs ? inputs && f.moduleArgs ? outputs - && f.moduleArgs ? flakelight); + && f.moduleArgs ? pkgsFor + && f.moduleArgs ? specialArgs + && f.moduleArgs ? modulesPath + && f.moduleArgs ? moduleArgs + ); + + moduleArgs-add = test + (flakelight ./empty { + _module.args.test-val = true; + outputs = { test-val, ... }: { + test = test-val; + }; + }) + (f: f.test); extra-pkgs-vals = test (flakelight ./empty {