mpvScripts.{blacklistExtensions, seekTo}: makeOverridable & refactor

nicoo 54d25073 a899b23b

+11 -7
+11 -7
pkgs/applications/video/mpv/scripts/occivink.nix
··· 4 4 }: 5 5 6 6 let 7 - script = { pname, ...}@args: 8 - buildLua (lib.attrsets.recursiveUpdate { 7 + camelToKebab = let 8 + inherit (lib.strings) match stringAsChars toLower; 9 + isUpper = match "[A-Z]"; 10 + in stringAsChars (c: if isUpper c != null then "-${toLower c}" else c); 11 + 12 + mkScript = name: args: 13 + buildLua (lib.attrsets.recursiveUpdate rec { 14 + pname = camelToKebab name; 9 15 src = fetchFromGitHub { 10 16 owner = "occivink"; 11 17 repo = "mpv-scripts"; ··· 24 30 } args); 25 31 26 32 in 27 - { 33 + lib.mapAttrs (name: lib.makeOverridable (mkScript name)) { 28 34 29 35 # Usage: `pkgs.mpv.override { scripts = [ pkgs.mpvScripts.seekTo ]; }` 30 - seekTo = script { 31 - pname = "seek-to"; 36 + seekTo = { 32 37 meta.description = "Mpv script for seeking to a specific position"; 33 38 outputHash = "sha256-3RlbtUivmeoR9TZ6rABiZSd5jd2lFv/8p/4irHMLshs="; 34 39 }; 35 40 36 - blacklistExtensions = script { 37 - pname = "blacklist-extensions"; 41 + blacklistExtensions = { 38 42 meta.description = "Automatically remove playlist entries based on their extension."; 39 43 outputHash = "sha256-qw9lz8ofmvvh23F9aWLxiU4YofY+YflRETu+nxMhvVE="; 40 44 };