···
dataDir = "/var/lib/matrix-appservice-discord";
registrationFile = "${dataDir}/discord-registration.yaml";
cfg = config.services.matrix-appservice-discord;
opt = options.services.matrix-appservice-discord;
# TODO: switch to configGen.json once RFC42 is implemented
···
services.matrix-appservice-discord = {
enable = mkEnableOption (lib.mdDoc "a bridge between Matrix and Discord");
+
default = pkgs.matrix-appservice-discord;
+
defaultText = literalExpression "pkgs.matrix-appservice-discord";
+
description = lib.mdDoc ''
+
Which package of matrix-appservice-discord to use.
settings = mkOption rec {
# TODO: switch to types.config.json as prescribed by RFC42 once it's implemented
···
if [ ! -f '${registrationFile}' ]; then
+
${cfg.package}/bin/matrix-appservice-discord \
--generate-registration \
--url=${escapeShellArg cfg.url} \
${optionalString (cfg.localpart != null) "--localpart=${escapeShellArg cfg.localpart}"} \
···
+
WorkingDirectory = "${cfg.package}/${cfg.package.passthru.nodeAppDir}";
StateDirectory = baseNameOf dataDir;
EnvironmentFile = cfg.environmentFile;
+
${cfg.package}/bin/matrix-appservice-discord \
--file='${registrationFile}' \
--config='${settingsFile}' \
--port='${toString cfg.port}'