nixos/tt-rss: Support plugins and themes

The extra config is required to configure some plugins.
This commit is contained in:
Janne Heß 2018-06-04 14:14:57 +02:00
parent 19332e4d52
commit 31714e44b7

View File

@ -76,6 +76,8 @@ let
define('SMTP_FROM_NAME', '${escape ["'" "\\"] cfg.email.fromName}'); define('SMTP_FROM_NAME', '${escape ["'" "\\"] cfg.email.fromName}');
define('SMTP_FROM_ADDRESS', '${escape ["'" "\\"] cfg.email.fromAddress}'); define('SMTP_FROM_ADDRESS', '${escape ["'" "\\"] cfg.email.fromAddress}');
define('DIGEST_SUBJECT', '${escape ["'" "\\"] cfg.email.digestSubject}'); define('DIGEST_SUBJECT', '${escape ["'" "\\"] cfg.email.digestSubject}');
${cfg.extraConfig}
''; '';
in { in {
@ -431,6 +433,26 @@ let
''; '';
}; };
pluginPackages = mkOption {
type = types.listOf types.package;
default = [];
description = ''
List of plugins to install. The list elements are expected to
be derivations. All elements in this derivation are automatically
copied to the <literal>plugins.local</literal> directory.
'';
};
themePackages = mkOption {
type = types.listOf types.package;
default = [];
description = ''
List of themes to install. The list elements are expected to
be derivations. All elements in this derivation are automatically
copied to the <literal>themes.local</literal> directory.
'';
};
logDestination = mkOption { logDestination = mkOption {
type = types.enum ["" "sql" "syslog"]; type = types.enum ["" "sql" "syslog"];
default = "sql"; default = "sql";
@ -441,6 +463,14 @@ let
error.log). error.log).
''; '';
}; };
extraConfig = mkOption {
type = types.lines;
default = "";
description = ''
Additional lines to append to <literal>config.php</literal>.
'';
};
}; };
}; };
@ -517,6 +547,16 @@ let
rm -rf "${cfg.root}/*" rm -rf "${cfg.root}/*"
mkdir -m 755 -p "${cfg.root}" mkdir -m 755 -p "${cfg.root}"
cp -r "${pkgs.tt-rss}/"* "${cfg.root}" cp -r "${pkgs.tt-rss}/"* "${cfg.root}"
${optionalString (cfg.pluginPackages != []) ''
for plugin in ${concatStringsSep " " cfg.pluginPackages}; do
cp -r "$plugin"/* "${cfg.root}/plugins.local/"
done
''}
${optionalString (cfg.themePackages != []) ''
for theme in ${concatStringsSep " " cfg.themePackages}; do
cp -r "$theme"/* "${cfg.root}/themes.local/"
done
''}
ln -sf "${tt-rss-config}" "${cfg.root}/config.php" ln -sf "${tt-rss-config}" "${cfg.root}/config.php"
chown -R "${cfg.user}" "${cfg.root}" chown -R "${cfg.user}" "${cfg.root}"
chmod -R 755 "${cfg.root}" chmod -R 755 "${cfg.root}"