discourse: Fix plugin support
For plugins to work properly, their assets need to be precompiled along with the rest of Discourse's assets. This means we need to build new packages when the list of plugins change. (cherry picked from commit 9af3672f4faaafba0ce0129a87fc7925c14eeb61)
This commit is contained in:
parent
beb05a45aa
commit
3b84448e67
@ -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
|
||||
|
||||
|
@ -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;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user