1{ lib, ... }:
2{
3 options = {
4 sub = {
5 nixos = lib.mkOption {
6 type = lib.types.submoduleWith {
7 class = "nixos";
8 modules = [
9 ./expose-module-class.nix
10 ];
11 };
12 default = { };
13 };
14
15 conditionalImportAsNixos = lib.mkOption {
16 type = lib.types.submoduleWith {
17 class = "nixos";
18 modules = [
19 ./polymorphic-module.nix
20 ];
21 };
22 default = { };
23 };
24
25 conditionalImportAsDarwin = lib.mkOption {
26 type = lib.types.submoduleWith {
27 class = "darwin";
28 modules = [
29 ./polymorphic-module.nix
30 ];
31 };
32 default = { };
33 };
34 };
35 };
36 config = {
37 _module.freeformType = lib.types.anything;
38
39 nixos = lib.evalModules {
40 class = "nixos";
41 modules = [ ./expose-module-class.nix ];
42 };
43
44 conditionalImportAsNixos = lib.evalModules {
45 class = "nixos";
46 modules = [ ./polymorphic-module.nix ];
47 };
48
49 conditionalImportAsDarwin = lib.evalModules {
50 class = "darwin";
51 modules = [ ./polymorphic-module.nix ];
52 };
53 };
54}