diff --git a/pkgs/applications/video/mpv/scripts/buildLua.nix b/pkgs/applications/video/mpv/scripts/buildLua.nix index b86642305fc6..769e11798a6a 100644 --- a/pkgs/applications/video/mpv/scripts/buildLua.nix +++ b/pkgs/applications/video/mpv/scripts/buildLua.nix @@ -1,10 +1,24 @@ { lib , stdenvNoCC }: -let fileName = pathStr: lib.last (lib.splitString "/" pathStr); +let + escapedList = with lib; concatMapStringsSep " " (s: "'${escape [ "'" ] s}'"); + fileName = pathStr: lib.last (lib.splitString "/" pathStr); + scriptsDir = "$out/share/mpv/scripts"; in lib.makeOverridable ( - { pname, scriptPath ? "${pname}.lua", ... }@args: + { pname + , extraScripts ? [] + , ... }@args: + let + # either passthru.scriptName, inferred from scriptPath, or from pname + scriptName = (args.passthru or {}).scriptName or ( + if args ? scriptPath + then fileName args.scriptPath + else "${pname}.lua" + ); + scriptPath = args.scriptPath or "./${scriptName}"; + in stdenvNoCC.mkDerivation (lib.attrsets.recursiveUpdate { dontBuild = true; preferLocalBuild = true; @@ -12,11 +26,12 @@ lib.makeOverridable ( outputHashMode = "recursive"; installPhase = '' runHook preInstall - install -m644 -Dt $out/share/mpv/scripts ${scriptPath} + install -m644 -Dt "${scriptsDir}" \ + ${escapedList ([ scriptPath ] ++ extraScripts)} runHook postInstall ''; - passthru.scriptName = fileName scriptPath; + passthru = { inherit scriptName; }; meta.platforms = lib.platforms.all; } args) ) diff --git a/pkgs/applications/video/mpv/scripts/quality-menu.nix b/pkgs/applications/video/mpv/scripts/quality-menu.nix index d0eb2ca0119b..e4d82d17ca39 100644 --- a/pkgs/applications/video/mpv/scripts/quality-menu.nix +++ b/pkgs/applications/video/mpv/scripts/quality-menu.nix @@ -15,8 +15,8 @@ buildLua rec { hash = "sha256-yrcTxqpLnOI1Tq3khhflO3wzhyeTPuvKifyH5/P57Ns="; }; - passthru.scriptName = "quality-menu.lua"; - scriptPath = if oscSupport then "*.lua" else passthru.scriptName; + scriptPath = "quality-menu.lua"; + extraScripts = lib.optional oscSupport "quality-menu-osc.lua"; meta = with lib; { description = "A userscript for MPV that allows you to change youtube video quality (ytdl-format) on the fly"; diff --git a/pkgs/applications/video/mpv/scripts/thumbnail.nix b/pkgs/applications/video/mpv/scripts/thumbnail.nix index 29509bd033f3..4ed545363839 100644 --- a/pkgs/applications/video/mpv/scripts/thumbnail.nix +++ b/pkgs/applications/video/mpv/scripts/thumbnail.nix @@ -15,7 +15,9 @@ buildLua rec { postPatch = "patchShebangs concat_files.py"; dontBuild = false; - scriptPath = "mpv_thumbnail_script_{client_osc,server}.lua"; + scriptPath = "mpv_thumbnail_script_client_osc.lua"; + extraScripts = [ "mpv_thumbnail_script_server.lua" ]; + passthru.scriptName = "mpv_thumbnail_script_{client_osc,server}.lua"; meta = with lib; { description = "A lua script to show preview thumbnails in mpv's OSC seekbar";