56 lines
1.2 KiB
Nix
56 lines
1.2 KiB
Nix
let
|
|
v."8.0.0.0" = {
|
|
hash = "sha256-5YUX+w4n3nBhAkdgjF9D5yY/jzRKxpW+mTQCBluzsVI=";
|
|
rev = "v8";
|
|
};
|
|
v."10.0.0.0" = {
|
|
hash = "sha256-pPhMmH17RKktIX16ozSxsigxo6tU8tlST4IAm3vpjrw=";
|
|
rev = "v10";
|
|
};
|
|
|
|
latest =
|
|
lib:
|
|
builtins.foldl' (acc: next: if lib.versionOlder acc next then next else acc) "0" (
|
|
builtins.attrNames v
|
|
);
|
|
|
|
plugin =
|
|
{
|
|
lib,
|
|
buildJellyfinPlugin,
|
|
fetchJellyfinPlugin,
|
|
...
|
|
}@params:
|
|
let
|
|
argNames = builtins.attrNames (lib.trivial.functionArgs plugin) ++ [
|
|
"name"
|
|
"version"
|
|
"hash"
|
|
];
|
|
extraArgs = lib.attrsets.removeAttrs params argNames;
|
|
|
|
self = plugin params;
|
|
|
|
name = params.name or "dlna";
|
|
version = params.version or (latest lib); # "10.0.0.0"; # TODO latest
|
|
defaultRev = {
|
|
tag = "v${lib.versions.major version}";
|
|
hash = params.hash or "";
|
|
};
|
|
|
|
args = {
|
|
name = name;
|
|
version = args.src.version or version;
|
|
nugetDeps = ./deps.json;
|
|
src = fetchJellyfinPlugin (
|
|
{
|
|
inherit name version;
|
|
}
|
|
// (v.${version} or defaultRev)
|
|
);
|
|
}
|
|
// extraArgs;
|
|
in
|
|
buildJellyfinPlugin args;
|
|
in
|
|
plugin
|