Unverified Commit 5dd1dff8 authored by andre4ik3's avatar andre4ik3
Browse files

nixos/facter: add enable option

The option defaults to `report != { }` instead of `reportPath != null`,
because since the report may be set externally using `report`, guarding
for `reportPath != null` breaks setups that set it externally, since
none of the modules take effect any longer.
parent fb20d4ad
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -23,6 +23,19 @@
  meta.maintainers = with lib.maintainers; [ mic92 ];

  options.hardware.facter = with lib; {
    enable = mkOption {
      type = types.bool;
      default = config.hardware.facter.report != { };
      defaultText = literalExpression ''
        config.hardware.facter.report != { }
      '';
      description = ''
        Whether to enable automatic hardware configuration using a report generated by nixos-facter.

        See <https://nix-community.github.io/nixos-facter/> for more information.
      '';
    };

    report = mkOption {
      type = types.attrsOf types.anything;
      default =
+1 −1
Original line number Diff line number Diff line
@@ -22,7 +22,7 @@ in
    '';
  };

  config = lib.mkIf (config.hardware.facter.reportPath != null) {
  config = lib.mkIf config.hardware.facter.enable {
    boot.initrd.availableKernelModules = config.hardware.facter.detected.boot.disk.kernelModules;
  };
}
+1 −1
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@ let
  hasIntelCpu = facterLib.hasIntelCpu report;
in
{
  config = lib.mkIf (config.hardware.facter.reportPath != null && isBaremetal) {
  config = lib.mkIf (config.hardware.facter.enable && isBaremetal) {
    # none (e.g. bare-metal)
    # provide firmware for devices that might not have been detected by nixos-facter
    hardware.enableRedistributableFirmware = lib.mkDefault true;
+1 −1
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@ in
      defaultText = "hardware dependent";
    };
  };
  config = lib.mkIf (config.hardware.facter.reportPath != null && cfg.enable) {
  config = lib.mkIf (config.hardware.facter.enable && cfg.enable) {
    services.xserver.videoDrivers = [ "modesetting" ];
  };
}
+1 −1
Original line number Diff line number Diff line
@@ -28,7 +28,7 @@ in
    };
  };

  config = lib.mkIf (config.hardware.facter.reportPath != null && cfg.enable) (
  config = lib.mkIf (config.hardware.facter.enable && cfg.enable) (
    {
      boot.initrd.kernelModules = config.hardware.facter.detected.boot.graphics.kernelModules;
    }
Loading