{ lib, fetchFromGitHub, newScope, }@args: let fetchJellyfinPlugin = (lib.makeScope newScope (_: args)).callPackage package; package = { name, fetchFromGitHub, ... }@args: let self = fetchJellyfinPlugin args; extraArgs = lib.attrsets.removeAttrs args (builtins.attrNames (lib.functionArgs package)); owner = args.owner or "jellyfin"; repo = args.repo or "jellyfin-plugin-${args.name}"; name = builtins.concatStringsSep "-" ( [ repo ] ++ lib.optional (args ? version) args.version ++ [ "source" ] ); in fetchFromGitHub ( { inherit owner repo name; passthru.override = self.override; } // extraArgs ); in fetchJellyfinPlugin