diff options
author | Aaron Andersen <aaron@fosslib.net> | 2021-03-15 18:50:58 -0400 |
---|---|---|
committer | Aaron Andersen <aaron@fosslib.net> | 2021-03-15 18:50:58 -0400 |
commit | dd0d4cade8913e30889ead2bca053db5a355e89c (patch) | |
tree | 632e238da2bdccf5c65404e7eb74cdcd640adbbf /pkgs/top-level/kodi-packages.nix | |
parent | 1d779d5a43ffa5fe0bfd6d4b3ff1da35a0e6bb3b (diff) |
kodi.packages: split into separate files
Diffstat (limited to 'pkgs/top-level/kodi-packages.nix')
-rw-r--r-- | pkgs/top-level/kodi-packages.nix | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/pkgs/top-level/kodi-packages.nix b/pkgs/top-level/kodi-packages.nix new file mode 100644 index 0000000000000..d31eb3b0ef820 --- /dev/null +++ b/pkgs/top-level/kodi-packages.nix @@ -0,0 +1,89 @@ +{ lib, newScope, kodi }: + +with lib; + +let self = rec { + + addonDir = "/share/kodi/addons"; + rel = "Matrix"; + + callPackage = newScope self; + + inherit kodi; + + # Convert derivation to a kodi module. Stolen from ../../../top-level/python-packages.nix + toKodiAddon = drv: drv.overrideAttrs (oldAttrs: { + # Use passthru in order to prevent rebuilds when possible. + passthru = (oldAttrs.passthru or {}) // { + kodiAddonFor = kodi; + requiredKodiAddons = requiredKodiAddons drv.propagatedBuildInputs; + }; + }); + + # Check whether a derivation provides a Kodi addon. + hasKodiAddon = drv: drv ? kodiAddonFor && drv.kodiAddonFor == kodi; + + # Get list of required Kodi addons given a list of derivations. + requiredKodiAddons = drvs: + let + modules = filter hasKodiAddon drvs; + in + unique (modules ++ concatLists (catAttrs "requiredKodiAddons" modules)); + + # package builders + + buildKodiAddon = callPackage ../applications/video/kodi/build-kodi-addon.nix { }; + + buildKodiBinaryAddon = callPackage ../applications/video/kodi/build-kodi-binary-addon.nix { }; + + # regular packages + + kodi-platform = callPackage ../applications/video/kodi-packages/kodi-platform { }; + + # addon packages + + controllers = { + default = callPackage ../applications/video/kodi-packages/controllers { controller = "default"; }; + + dreamcast = callPackage ../applications/video/kodi-packages/controllers { controller = "dreamcast"; }; + + gba = callPackage ../applications/video/kodi-packages/controllers { controller = "gba"; }; + + genesis = callPackage ../applications/video/kodi-packages/controllers { controller = "genesis"; }; + + mouse = callPackage ../applications/video/kodi-packages/controllers { controller = "mouse"; }; + + n64 = callPackage ../applications/video/kodi-packages/controllers { controller = "n64"; }; + + nes = callPackage ../applications/video/kodi-packages/controllers { controller = "nes"; }; + + ps = callPackage ../applications/video/kodi-packages/controllers { controller = "ps"; }; + + snes = callPackage ../applications/video/kodi-packages/controllers { controller = "snes"; }; + }; + + joystick = callPackage ../applications/video/kodi-packages/joystick { }; + + svtplay = callPackage ../applications/video/kodi-packages/svtplay { }; + + steam-controller = callPackage ../applications/video/kodi-packages/steam-controller { }; + + steam-launcher = callPackage ../applications/video/kodi-packages/steam-launcher { }; + + pdfreader = callPackage ../applications/video/kodi-packages/pdfreader { }; + + pvr-hts = callPackage ../applications/video/kodi-packages/pvr-hts { }; + + pvr-hdhomerun = callPackage ../applications/video/kodi-packages/pvr-hdhomerun { }; + + pvr-iptvsimple = callPackage ../applications/video/kodi-packages/pvr-iptvsimple { }; + + osmc-skin = callPackage ../applications/video/kodi-packages/osmc-skin { }; + + inputstream-adaptive = callPackage ../applications/video/kodi-packages/inputstream-adaptive { }; + + vfs-sftp = callPackage ../applications/video/kodi-packages/vfs-sftp { }; + + vfs-libarchive = callPackage ../applications/video/kodi-packages/vfs-libarchive { }; + +}; in self |