Unverified Commit d84b0024 authored by Robert Hensing's avatar Robert Hensing Committed by GitHub
Browse files

lib/modules: export `class` inside `specialArgs` (#395141)

parents 5997b997 6de90393
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -257,6 +257,7 @@ let
                    config
                    specialArgs
                    ;
                  _class = class;
                }
                // specialArgs
              );
+12 −0
Original line number Diff line number Diff line
@@ -681,6 +681,18 @@ checkConfigOutput '^true$' config.viaConfig ./mkDefinition.nix
checkConfigOutput '^true$' config.mkMerge ./mkDefinition.nix
checkConfigOutput '^true$' config.mkForce ./mkDefinition.nix

# specialArgs._class
checkConfigOutput '"nixos"' config.nixos.config.foo ./specialArgs-class.nix
checkConfigOutput '"bar"' config.conditionalImportAsNixos.config.foo ./specialArgs-class.nix
checkConfigError 'attribute .*bar.* not found' config.conditionalImportAsNixos.config.bar ./specialArgs-class.nix
checkConfigError 'attribute .*foo.* not found' config.conditionalImportAsDarwin.config.foo ./specialArgs-class.nix
checkConfigOutput '"foo"' config.conditionalImportAsDarwin.config.bar ./specialArgs-class.nix
checkConfigOutput '"nixos"' config.sub.nixos.foo ./specialArgs-class.nix
checkConfigOutput '"bar"' config.sub.conditionalImportAsNixos.foo ./specialArgs-class.nix
checkConfigError 'attribute .*bar.* not found' config.sub.conditionalImportAsNixos.bar ./specialArgs-class.nix
checkConfigError 'attribute .*foo.* not found' config.sub.conditionalImportAsDarwin.foo ./specialArgs-class.nix
checkConfigOutput '"foo"' config.sub.conditionalImportAsDarwin.bar ./specialArgs-class.nix

cat <<EOF
====== module tests ======
$pass Pass
+3 −0
Original line number Diff line number Diff line
{ _class, ... }:
assert _class == "nixos";
{ }
+4 −1
Original line number Diff line number Diff line
@@ -5,7 +5,9 @@
      nixosOk = lib.mkOption {
        type = lib.types.submoduleWith {
          class = "nixos";
          modules = [ ];
          modules = [
            ./assert-module-class-is-nixos.nix
          ];
        };
      };
      # Same but will have bad definition
@@ -45,6 +47,7 @@
      class = "nixos";
      modules = [
        ./module-class-is-nixos.nix
        ./assert-module-class-is-nixos.nix
      ];
    };

+8 −0
Original line number Diff line number Diff line
{ _class, lib, ... }:
{
  options = {
    foo = lib.mkOption {
      default = _class;
    };
  };
}
Loading