diff options
Diffstat (limited to 'pkgs/top-level/kodi-packages.nix')
-rw-r--r-- | pkgs/top-level/kodi-packages.nix | 113 |
1 files changed, 113 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..f9b20dd2bc7e0 --- /dev/null +++ b/pkgs/top-level/kodi-packages.nix @@ -0,0 +1,113 @@ +{ 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 update scripts + + addonUpdateScript = callPackage ../applications/video/kodi-packages/addon-update-script { }; + + # 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 { }; + + netflix = callPackage ../applications/video/kodi-packages/netflix { }; + + 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 { }; + + vfs-sftp = callPackage ../applications/video/kodi-packages/vfs-sftp { }; + + vfs-libarchive = callPackage ../applications/video/kodi-packages/vfs-libarchive { }; + + # addon packages (dependencies) + + certifi = callPackage ../applications/video/kodi-packages/certifi { }; + + chardet = callPackage ../applications/video/kodi-packages/chardet { }; + + idna = callPackage ../applications/video/kodi-packages/idna { }; + + inputstream-adaptive = callPackage ../applications/video/kodi-packages/inputstream-adaptive { }; + + inputstreamhelper = callPackage ../applications/video/kodi-packages/inputstreamhelper { }; + + myconnpy = callPackage ../applications/video/kodi-packages/myconnpy { }; + + requests = callPackage ../applications/video/kodi-packages/requests { }; + + signals = callPackage ../applications/video/kodi-packages/signals { }; + + urllib3 = callPackage ../applications/video/kodi-packages/urllib3 { }; + +}; in self |