about summary refs log tree commit diff
path: root/pkgs/applications/video/mpv
diff options
context:
space:
mode:
authorMaciej Krüger <mkg20001@gmail.com>2023-11-22 14:13:57 +0100
committerGitHub <noreply@github.com>2023-11-22 14:13:57 +0100
commitfaf93f97506e045a1eb0744036816d2c848014be (patch)
treecf251ed4e05e8083a944dd745afeecb15ea1c0a5 /pkgs/applications/video/mpv
parent1aeb6d1456ba48c8b4753b092966ea62a8682194 (diff)
parentad949a8de8af5aa0625639290b13e22bb0b3e80b (diff)
downloadnixlib-faf93f97506e045a1eb0744036816d2c848014be.tar
nixlib-faf93f97506e045a1eb0744036816d2c848014be.tar.gz
nixlib-faf93f97506e045a1eb0744036816d2c848014be.tar.bz2
nixlib-faf93f97506e045a1eb0744036816d2c848014be.tar.lz
nixlib-faf93f97506e045a1eb0744036816d2c848014be.tar.xz
nixlib-faf93f97506e045a1eb0744036816d2c848014be.tar.zst
nixlib-faf93f97506e045a1eb0744036816d2c848014be.zip
Merge pull request #266926 from nbraud/mpvScripts/buildLua/extraScripts
mpvScripts.buildLua: Add `extraScripts` parameter, infer `scriptName` better
Diffstat (limited to 'pkgs/applications/video/mpv')
-rw-r--r--pkgs/applications/video/mpv/scripts/buildLua.nix23
-rw-r--r--pkgs/applications/video/mpv/scripts/quality-menu.nix4
-rw-r--r--pkgs/applications/video/mpv/scripts/thumbnail.nix4
3 files changed, 24 insertions, 7 deletions
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";