at 25.11-pre 1.7 kB view raw
1{ lib, ... }: 2{ 3 options = { 4 sub = { 5 nixosOk = lib.mkOption { 6 type = lib.types.submoduleWith { 7 class = "nixos"; 8 modules = [ 9 ./assert-module-class-is-nixos.nix 10 ]; 11 }; 12 }; 13 # Same but will have bad definition 14 nixosFail = lib.mkOption { 15 type = lib.types.submoduleWith { 16 class = "nixos"; 17 modules = [ ]; 18 }; 19 }; 20 21 mergeFail = lib.mkOption { 22 type = lib.types.submoduleWith { 23 class = "nixos"; 24 modules = [ ]; 25 }; 26 default = { }; 27 }; 28 }; 29 }; 30 imports = [ 31 { 32 options = { 33 sub = { 34 mergeFail = lib.mkOption { 35 type = lib.types.submoduleWith { 36 class = "darwin"; 37 modules = [ ]; 38 }; 39 }; 40 }; 41 }; 42 } 43 ]; 44 config = { 45 _module.freeformType = lib.types.anything; 46 ok = lib.evalModules { 47 class = "nixos"; 48 modules = [ 49 ./module-class-is-nixos.nix 50 ./assert-module-class-is-nixos.nix 51 ]; 52 }; 53 54 fail = lib.evalModules { 55 class = "nixos"; 56 modules = [ 57 ./module-class-is-nixos.nix 58 ./module-class-is-darwin.nix 59 ]; 60 }; 61 62 fail-anon = lib.evalModules { 63 class = "nixos"; 64 modules = [ 65 ./module-class-is-nixos.nix 66 { 67 _file = "foo.nix#darwinModules.default"; 68 _class = "darwin"; 69 config = { }; 70 imports = [ ]; 71 } 72 ]; 73 }; 74 75 sub.nixosOk = { 76 _class = "nixos"; 77 }; 78 sub.nixosFail = { 79 imports = [ ./module-class-is-darwin.nix ]; 80 }; 81 }; 82}