diff --git a/modules/programs/mpv.nix b/modules/programs/mpv.nix index 456374e6..fee76d7c 100644 --- a/modules/programs/mpv.nix +++ b/modules/programs/mpv.nix @@ -64,10 +64,14 @@ let wrapperRequiresOverride = lib.any (v: v != [ ]) [ cfg.scripts + cfg.extraMakeWrapperArgs ]; mpvPackage = - if wrapperRequiresOverride then pkgs.mpv.override { inherit (cfg) scripts; } else cfg.package; + if wrapperRequiresOverride then + pkgs.mpv.override { inherit (cfg) scripts extraMakeWrapperArgs; } + else + cfg.package; in { @@ -101,6 +105,22 @@ in ''; }; + extraMakeWrapperArgs = mkOption { + type = with types; listOf str; + default = [ ]; + example = literalExpression '' + [ + "--prefix" + "LD_LIBRARY_PATH" + ":" + (lib.makeLibraryPath [ pkgs.libaacs pkgs.libbluray ]) + ] + ''; + description = '' + List of scripts to use with mpv. + ''; + }; + scriptOpts = mkOption { description = '' Script options added to @@ -224,7 +244,7 @@ in assertions = [ { assertion = wrapperRequiresOverride -> (cfg.package == options.programs.mpv.package.default); - message = ''The programs.mpv "package" option is mutually exclusive with "scripts" option.''; + message = ''The programs.mpv "package" option is mutually exclusive with "scripts", "extraMakeWrapperArgs" options.''; } ]; } diff --git a/tests/modules/programs/mpv/default.nix b/tests/modules/programs/mpv/default.nix index 9a33172c..c7e8796c 100644 --- a/tests/modules/programs/mpv/default.nix +++ b/tests/modules/programs/mpv/default.nix @@ -3,4 +3,5 @@ mpv-example-settings = ./mpv-example-settings.nix; mpv-invalid-settings = ./mpv-invalid-settings.nix; mpv-scripts = ./mpv-scripts.nix; + mpv-extra-wrapper-args = ./mpv-extra-wrapper-args.nix; } diff --git a/tests/modules/programs/mpv/mpv-extra-wrapper-args.nix b/tests/modules/programs/mpv/mpv-extra-wrapper-args.nix new file mode 100644 index 00000000..ad14738e --- /dev/null +++ b/tests/modules/programs/mpv/mpv-extra-wrapper-args.nix @@ -0,0 +1,27 @@ +{ + lib, + pkgs, + ... +}: + +{ + imports = [ ./stubs.nix ]; + + programs.mpv = { + enable = true; + extraMakeWrapperArgs = [ + "--prefix" + "LD_LIBRARY_PATH" + ":" + (lib.makeLibraryPath [ + pkgs.libaacs + pkgs.libbluray + ]) + ]; + }; + + nmt.script = '' + mpvbin="home-path/bin/mpv" + assertFileRegex "$mpvbin" 'LD_LIBRARY_PATH' + ''; +} diff --git a/tests/modules/programs/mpv/mpv-invalid-settings.nix b/tests/modules/programs/mpv/mpv-invalid-settings.nix index a09c6a15..98c91d31 100644 --- a/tests/modules/programs/mpv/mpv-invalid-settings.nix +++ b/tests/modules/programs/mpv/mpv-invalid-settings.nix @@ -13,6 +13,6 @@ }; test.asserts.assertions.expected = [ - ''The programs.mpv "package" option is mutually exclusive with "scripts" option.'' + ''The programs.mpv "package" option is mutually exclusive with "scripts", "extraMakeWrapperArgs" options.'' ]; }