summary refs log tree commit diff
path: root/pkgs/top-level/kodi-packages.nix
diff options
context:
space:
mode:
authorAaron Andersen <aaron@fosslib.net>2021-03-15 18:50:58 -0400
committerAaron Andersen <aaron@fosslib.net>2021-03-15 18:50:58 -0400
commitdd0d4cade8913e30889ead2bca053db5a355e89c (patch)
tree632e238da2bdccf5c65404e7eb74cdcd640adbbf /pkgs/top-level/kodi-packages.nix
parent1d779d5a43ffa5fe0bfd6d4b3ff1da35a0e6bb3b (diff)
downloadnixpkgs-dd0d4cade8913e30889ead2bca053db5a355e89c.tar
nixpkgs-dd0d4cade8913e30889ead2bca053db5a355e89c.tar.gz
nixpkgs-dd0d4cade8913e30889ead2bca053db5a355e89c.tar.bz2
nixpkgs-dd0d4cade8913e30889ead2bca053db5a355e89c.tar.lz
nixpkgs-dd0d4cade8913e30889ead2bca053db5a355e89c.tar.xz
nixpkgs-dd0d4cade8913e30889ead2bca053db5a355e89c.tar.zst
nixpkgs-dd0d4cade8913e30889ead2bca053db5a355e89c.zip
kodi.packages: split into separate files
Diffstat (limited to 'pkgs/top-level/kodi-packages.nix')
-rw-r--r--pkgs/top-level/kodi-packages.nix89
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 00000000000..d31eb3b0ef8
--- /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