File tree Expand file tree Collapse file tree 7 files changed +105
-1
lines changed
Expand file tree Collapse file tree 7 files changed +105
-1
lines changed Original file line number Diff line number Diff line change 257257 config
258258 specialArgs
259259 ;
260+ _class = class ;
260261 }
261262 // specialArgs
262263 ) ;
Original file line number Diff line number Diff line change @@ -681,6 +681,18 @@ checkConfigOutput '^true$' config.viaConfig ./mkDefinition.nix
681681checkConfigOutput ' ^true$' config.mkMerge ./mkDefinition.nix
682682checkConfigOutput ' ^true$' config.mkForce ./mkDefinition.nix
683683
684+ # specialArgs._class
685+ checkConfigOutput ' "nixos"' config.nixos.config.foo ./specialArgs-class.nix
686+ checkConfigOutput ' "bar"' config.conditionalImportAsNixos.config.foo ./specialArgs-class.nix
687+ checkConfigError ' attribute .*bar.* not found' config.conditionalImportAsNixos.config.bar ./specialArgs-class.nix
688+ checkConfigError ' attribute .*foo.* not found' config.conditionalImportAsDarwin.config.foo ./specialArgs-class.nix
689+ checkConfigOutput ' "foo"' config.conditionalImportAsDarwin.config.bar ./specialArgs-class.nix
690+ checkConfigOutput ' "nixos"' config.sub.nixos.foo ./specialArgs-class.nix
691+ checkConfigOutput ' "bar"' config.sub.conditionalImportAsNixos.foo ./specialArgs-class.nix
692+ checkConfigError ' attribute .*bar.* not found' config.sub.conditionalImportAsNixos.bar ./specialArgs-class.nix
693+ checkConfigError ' attribute .*foo.* not found' config.sub.conditionalImportAsDarwin.foo ./specialArgs-class.nix
694+ checkConfigOutput ' "foo"' config.sub.conditionalImportAsDarwin.bar ./specialArgs-class.nix
695+
684696cat << EOF
685697====== module tests ======
686698$pass Pass
Original file line number Diff line number Diff line change 1+ { _class , ... } :
2+ assert _class == "nixos" ;
3+ { }
Original file line number Diff line number Diff line change 55 nixosOk = lib . mkOption {
66 type = lib . types . submoduleWith {
77 class = "nixos" ;
8- modules = [ ] ;
8+ modules = [
9+ ./assert-module-class-is-nixos.nix
10+ ] ;
911 } ;
1012 } ;
1113 # Same but will have bad definition
4547 class = "nixos" ;
4648 modules = [
4749 ./module-class-is-nixos.nix
50+ ./assert-module-class-is-nixos.nix
4851 ] ;
4952 } ;
5053
Original file line number Diff line number Diff line change 1+ { _class , lib , ... } :
2+ {
3+ options = {
4+ foo = lib . mkOption {
5+ default = _class ;
6+ } ;
7+ } ;
8+ }
Original file line number Diff line number Diff line change 1+ { _class , lib , ... } :
2+ let
3+ nixosModule =
4+ { ... } :
5+ {
6+ options . foo = lib . mkOption {
7+ default = "bar" ;
8+ } ;
9+ } ;
10+ darwinModule =
11+ { ... } :
12+ {
13+ options . bar = lib . mkOption {
14+ default = "foo" ;
15+ } ;
16+ } ;
17+ in
18+ {
19+ imports = [
20+ ( lib . optionalAttrs ( _class == "nixos" ) nixosModule )
21+ ( lib . optionalAttrs ( _class == "darwin" ) darwinModule )
22+ ] ;
23+ }
Original file line number Diff line number Diff line change 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+ }
You can’t perform that action at this time.
0 commit comments