lol

nixos/obs-studio: nullable package (#356845)

authored by

Masum Reza and committed by
GitHub
e1cedaab d7742431

+13 -5
+13 -5
nixos/modules/programs/obs-studio.nix
··· 12 12 options.programs.obs-studio = { 13 13 enable = lib.mkEnableOption "Free and open source software for video recording and live streaming"; 14 14 15 - package = lib.mkPackageOption pkgs "obs-studio" { example = "obs-studio"; }; 15 + package = lib.mkPackageOption pkgs "obs-studio" { 16 + nullable = true; 17 + example = "obs-studio"; 18 + }; 16 19 17 20 finalPackage = lib.mkOption { 18 - type = lib.types.package; 21 + type = lib.types.nullOr lib.types.package; 19 22 visible = false; 20 23 readOnly = true; 21 24 description = "Resulting customized OBS Studio package."; ··· 39 42 }; 40 43 41 44 config = lib.mkIf cfg.enable { 42 - programs.obs-studio.finalPackage = pkgs.wrapOBS.override { obs-studio = cfg.package; } { 43 - plugins = cfg.plugins; 45 + assertions = lib.singleton { 46 + assertion = cfg.package == null -> cfg.plugins == [ ]; 47 + message = "Plugins cannot be set if package is null"; 44 48 }; 45 49 46 - environment.systemPackages = [ cfg.finalPackage ]; 50 + programs.obs-studio.finalPackage = lib.mapNullable ( 51 + obs-studio: pkgs.wrapOBS.override { inherit obs-studio; } { plugins = cfg.plugins; } 52 + ) cfg.package; 53 + 54 + environment.systemPackages = lib.optional (cfg.finalPackage != null) cfg.finalPackage; 47 55 48 56 boot = lib.mkIf cfg.enableVirtualCamera { 49 57 kernelModules = [ "v4l2loopback" ];