diff --git a/nixos/modules/services/web-apps/discourse.nix b/nixos/modules/services/web-apps/discourse.nix index 49958fc6190..00a269ba871 100644 --- a/nixos/modules/services/web-apps/discourse.nix +++ b/nixos/modules/services/web-apps/discourse.nix @@ -30,6 +30,9 @@ in package = lib.mkOption { type = lib.types.package; default = pkgs.discourse; + apply = p: p.override { + plugins = lib.unique (p.enabledPlugins ++ cfg.plugins); + }; defaultText = "pkgs.discourse"; description = '' The discourse package to use. @@ -731,8 +734,6 @@ in cp -r ${cfg.package}/share/discourse/config.dist/* /run/discourse/config/ cp -r ${cfg.package}/share/discourse/public.dist/* /run/discourse/public/ - cp -r ${cfg.package}/share/discourse/plugins.dist/* /run/discourse/plugins/ - ${lib.concatMapStringsSep "\n" (p: "ln -sf ${p} /run/discourse/plugins/") cfg.plugins} ln -sf /var/lib/discourse/uploads /run/discourse/public/uploads ln -sf /var/lib/discourse/backups /run/discourse/public/backups diff --git a/pkgs/servers/web-apps/discourse/default.nix b/pkgs/servers/web-apps/discourse/default.nix index 5e7c4d5368a..8258049a403 100644 --- a/pkgs/servers/web-apps/discourse/default.nix +++ b/pkgs/servers/web-apps/discourse/default.nix @@ -3,6 +3,8 @@ , util-linux, gawk, imagemagick, optipng, pngquant, libjpeg, jpegoptim , gifsicle, libpsl, redis, postgresql, which, brotli, procps, rsync , nodePackages, v8 + +, plugins ? [] }: let @@ -148,6 +150,8 @@ let mkdir $NIX_BUILD_TOP/tmp_home export HOME=$NIX_BUILD_TOP/tmp_home + ${lib.concatMapStringsSep "\n" (p: "cp -r ${p} plugins/") plugins} + export RAILS_ENV=production bundle exec rake db:migrate >/dev/null @@ -212,7 +216,6 @@ let mv config config.dist mv public public.dist - mv plugins plugins.dist runHook postBuild ''; @@ -230,6 +233,7 @@ let ln -sf /run/discourse/public $out/share/discourse/public ln -sf /run/discourse/plugins $out/share/discourse/plugins ln -sf ${assets} $out/share/discourse/public.dist/assets + ${lib.concatMapStringsSep "\n" (p: "ln -sf ${p} $out/share/discourse/plugins/") plugins} runHook postInstall ''; @@ -244,6 +248,7 @@ let passthru = { inherit rubyEnv runtimeEnv runtimeDeps rake; + enabledPlugins = plugins; ruby = rubyEnv.wrappedRuby; tests = nixosTests.discourse; };