vuls: init at 0.27.0
[NixPkgs.git] / lib / tests / modules / specialArgs-lib.nix
blob8c9d2103862aa81a6628b5474c06dae76fb0d8af
1 { config, lib, ... }:
4   options = {
5     result = lib.mkOption { };
6     weird = lib.mkOption {
7       type = lib.types.submoduleWith {
8         # I generally recommend against overriding lib, because that leads to
9         # slightly incompatible dialects of the module system.
10         # Nonetheless, it's worth guarding the property that the module system
11         # evaluates with a completely custom lib, as a matter of separation of
12         # concerns.
13         specialArgs.lib = { };
14         modules = [ ];
15       };
16     };
17   };
18   config.weird = args@{ ... /* note the lack of a `lib` argument */ }:
19   assert args.lib == { };
20   assert args.specialArgs == { lib = { }; };
21   {
22     options.foo = lib.mkOption { };
23     config.foo = lib.mkIf true "alright";
24   };
25   config.result =
26     assert config.weird.foo == "alright";
27     "ok";