53 lines
1.2 KiB
Nix
53 lines
1.2 KiB
Nix
{ stdenv, lib, makeWrapper, kodi, plugins }:
|
|
|
|
let
|
|
|
|
p = builtins.parseDrvName kodi.name;
|
|
|
|
in
|
|
|
|
stdenv.mkDerivation {
|
|
|
|
name = "kodi-" + p.version;
|
|
version = p.version;
|
|
|
|
buildInputs = [ makeWrapper ];
|
|
|
|
buildCommand = ''
|
|
mkdir -p $out/share/kodi/addons/packages
|
|
${stdenv.lib.concatMapStrings
|
|
(plugin: "ln -s ${plugin.out
|
|
+ plugin.kodiPlugin
|
|
+ "/" + plugin.namespace
|
|
} $out/share/kodi/addons/.;") plugins}
|
|
$(for plugin in ${kodi}/share/kodi/addons/*
|
|
do
|
|
$(ln -s $plugin/ $out/share/kodi/addons/.)
|
|
done)
|
|
$(for share in ${kodi}/share/kodi/*
|
|
do
|
|
$(ln -s $share $out/share/kodi/.)
|
|
done)
|
|
$(for passthrough in icons xsessions applications
|
|
do
|
|
ln -s ${kodi}/share/$passthrough $out/share/
|
|
done)
|
|
$(for exe in kodi{,-standalone}
|
|
do
|
|
makeWrapper ${kodi}/bin/$exe $out/bin/$exe \
|
|
--prefix KODI_HOME : $out/share/kodi;
|
|
done)
|
|
'';
|
|
|
|
preferLocalBuilds = true;
|
|
|
|
meta = with kodi.meta; {
|
|
inherit license homepage;
|
|
description = description
|
|
+ " (with plugins: "
|
|
+ lib.concatStrings (lib.intersperse ", " (map (x: ""+x.name) plugins))
|
|
+ ")";
|
|
|
|
};
|
|
|
|
} |