From 588e73db432c2b6a1932033232733da0078a5251 Mon Sep 17 00:00:00 2001 From: nicoo Date: Sat, 11 Nov 2023 21:32:48 +0000 Subject: [PATCH 1/4] mpvScripts.buildLua: Only accept plain `scriptPath`, no glob etc. This makes future support for directory-packaged scripts much easier. An `extraScripts` parameter is provided for packaging scripts which expect multiple files (or folders) in `mpv/scripts/`, even though this does not comply with mpv's documented script location: https://mpv.io/manual/master/#script-location --- pkgs/applications/video/mpv/scripts/buildLua.nix | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/video/mpv/scripts/buildLua.nix b/pkgs/applications/video/mpv/scripts/buildLua.nix index b86642305fc6..f00b35254efe 100644 --- a/pkgs/applications/video/mpv/scripts/buildLua.nix +++ b/pkgs/applications/video/mpv/scripts/buildLua.nix @@ -1,10 +1,17 @@ { 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 + , scriptPath ? "${pname}.lua" + , extraScripts ? [] + , ... }@args: + stdenvNoCC.mkDerivation (lib.attrsets.recursiveUpdate { dontBuild = true; preferLocalBuild = true; @@ -12,7 +19,8 @@ lib.makeOverridable ( outputHashMode = "recursive"; installPhase = '' runHook preInstall - install -m644 -Dt $out/share/mpv/scripts ${scriptPath} + install -m644 -Dt "${scriptsDir}" \ + ${escapedList ([ scriptPath ] ++ extraScripts)} runHook postInstall ''; From 9c2b07c6d70f6d7cd0980e5e691483917bf467d3 Mon Sep 17 00:00:00 2001 From: nicoo Date: Sat, 11 Nov 2023 22:16:40 +0000 Subject: [PATCH 2/4] mpvScripts.buildLua: Infer `scriptName` from `scriptPath` over `pname` --- pkgs/applications/video/mpv/scripts/buildLua.nix | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/video/mpv/scripts/buildLua.nix b/pkgs/applications/video/mpv/scripts/buildLua.nix index f00b35254efe..769e11798a6a 100644 --- a/pkgs/applications/video/mpv/scripts/buildLua.nix +++ b/pkgs/applications/video/mpv/scripts/buildLua.nix @@ -8,10 +8,17 @@ let in lib.makeOverridable ( { pname - , scriptPath ? "${pname}.lua" , 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; @@ -24,7 +31,7 @@ lib.makeOverridable ( runHook postInstall ''; - passthru.scriptName = fileName scriptPath; + passthru = { inherit scriptName; }; meta.platforms = lib.platforms.all; } args) ) From 44828070c33572fc24fa37129af5542d1d63a1c6 Mon Sep 17 00:00:00 2001 From: nicoo Date: Sat, 11 Nov 2023 21:45:51 +0000 Subject: [PATCH 3/4] mpvScripts.quality-menu: Update following change in `buildLua` --- pkgs/applications/video/mpv/scripts/quality-menu.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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"; From ad949a8de8af5aa0625639290b13e22bb0b3e80b Mon Sep 17 00:00:00 2001 From: nicoo Date: Sat, 11 Nov 2023 21:46:15 +0000 Subject: [PATCH 4/4] mpvScripts.thumbnail: Update following change in `buildLua` --- pkgs/applications/video/mpv/scripts/thumbnail.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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";