X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=pkgs%2Fwebapps%2Fttrss%2Fdefault.nix;h=aeb573c32ab91982582509b77344ff549c64048b;hb=db343436f0e678ef3a97e6f8ac559ffa0507e422;hp=0ce2f94fd5c78ce400b502402e38feb6592065b3;hpb=86663f1789aecdb62e44a4be46e0ed111b795a09;p=perso%2FImmae%2FConfig%2FNix.git diff --git a/pkgs/webapps/ttrss/default.nix b/pkgs/webapps/ttrss/default.nix index 0ce2f94..aeb573c 100644 --- a/pkgs/webapps/ttrss/default.nix +++ b/pkgs/webapps/ttrss/default.nix @@ -1,30 +1,37 @@ { ttrss_config ? "/etc/ttrss/config.php" , varDir ? "/var/lib/ttrss" -, stdenv, mylibs }: +, stdenv, lib, callPackage, sources }: let - withPlugins = plugins: package.overrideAttrs(old: rec { - name = "${old.name}-with-plugins"; - installPhase = old.installPhase + - builtins.concatStringsSep "\n" ( - map (value: "ln -s ${value} $out/plugins/${value.pluginName}") plugins - ); - passthru = old.passthru // { - inherit plugins; - withPlugins = morePlugins: old.withPlugins (morePlugins ++ plugins); - }; - }); - package = stdenv.mkDerivation (mylibs.fetchedGit ./tt-rss.json // rec { + pluginNames = [ "auth_ldap" "af_feedmod" "feediron" "ff_instagram" "tumblr_gdpr_ua" ]; + allPlugins = lib.attrsets.genAttrs pluginNames + (name: callPackage (./plugins + "/${name}") {}); + toPassthru = pkg: plugins: { + inherit plugins allPlugins; + withPlugins = withPlugins pkg; + }; + withPlugins = pkg: toPlugins: + let + plugins = toPlugins allPlugins; + toInstallPlugin = n: + "ln -sf ${n} $out/plugins/${n.pluginName}"; + newTtrss = pkg.overrideAttrs(old: { + installPhase = old.installPhase + "\n" + builtins.concatStringsSep "\n" (map toInstallPlugin plugins); + passthru = toPassthru newTtrss (pkg.plugins ++ plugins); + }); + in newTtrss; + package = stdenv.mkDerivation rec { + pname = "tt-rss"; + version = sources.webapps-ttrss.version; + name = "${pname}-${version}"; + src = sources.webapps-ttrss; buildPhase = '' rm -rf lock feed-icons cache ln -sf ${varDir}/{lock,feed-icons,cache} . - ''; - installPhase = '' - cp -a . $out - ln -s ${ttrss_config} $out/config.php - ''; - passthru = { - plugins = []; - inherit withPlugins; - }; - }); + ''; + installPhase = '' + cp -a . $out + ln -s ${ttrss_config} $out/config.php + ''; + passthru = toPassthru package []; + }; in package