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