nixos/mautrix-*: add package option (#400113)

This commit is contained in:
Peder Bergebakken Sundt
2025-05-01 21:57:18 +02:00
committed by GitHub
3 changed files with 15 additions and 9 deletions
@@ -68,6 +68,8 @@ in
options.services.mautrix-signal = {
enable = lib.mkEnableOption "mautrix-signal, a Matrix-Signal puppeting bridge";
package = lib.mkPackageOption pkgs "mautrix-signal" { };
settings = lib.mkOption {
apply = lib.recursiveUpdate defaultConfig;
type = settingsFormat.type;
@@ -206,7 +208,7 @@ in
# generate the appservice's registration file if absent
if [ ! -f '${registrationFile}' ]; then
${pkgs.mautrix-signal}/bin/mautrix-signal \
${cfg.package}/bin/mautrix-signal \
--generate-registration \
--config='${settingsFile}' \
--registration='${registrationFile}'
@@ -234,7 +236,7 @@ in
StateDirectory = baseNameOf dataDir;
WorkingDirectory = dataDir;
ExecStart = ''
${pkgs.mautrix-signal}/bin/mautrix-signal \
${cfg.package}/bin/mautrix-signal \
--config='${settingsFile}' \
--registration='${registrationFile}'
'';
@@ -18,6 +18,8 @@ in
services.mautrix-telegram = {
enable = lib.mkEnableOption "Mautrix-Telegram, a Matrix-Telegram hybrid puppeting/relaybot bridge";
package = lib.mkPackageOption pkgs "mautrix-telegram" { };
settings = lib.mkOption rec {
apply = lib.recursiveUpdate default;
inherit (settingsFormat) type;
@@ -201,7 +203,7 @@ in
# generate the appservice's registration file if absent
if [ ! -f '${registrationFile}' ]; then
${pkgs.mautrix-telegram}/bin/mautrix-telegram \
${cfg.package}/bin/mautrix-telegram \
--generate-registration \
--config='${settingsFile}' \
--registration='${registrationFile}'
@@ -220,9 +222,9 @@ in
umask $old_umask
''
+ lib.optionalString (pkgs.mautrix-telegram ? alembic) ''
+ lib.optionalString (cfg.package ? alembic) ''
# run automatic database init and migration scripts
${pkgs.mautrix-telegram.alembic}/bin/alembic -x config='${settingsFile}' upgrade head
${cfg.package.alembic}/bin/alembic -x config='${settingsFile}' upgrade head
'';
serviceConfig = {
@@ -238,13 +240,13 @@ in
ProtectControlGroups = true;
PrivateTmp = true;
WorkingDirectory = pkgs.mautrix-telegram; # necessary for the database migration scripts to be found
WorkingDirectory = cfg.package; # necessary for the database migration scripts to be found
StateDirectory = baseNameOf dataDir;
UMask = "0027";
EnvironmentFile = cfg.environmentFile;
ExecStart = ''
${pkgs.mautrix-telegram}/bin/mautrix-telegram \
${cfg.package}/bin/mautrix-telegram \
--config='${settingsFile}'
'';
};
@@ -51,6 +51,8 @@ in
options.services.mautrix-whatsapp = {
enable = lib.mkEnableOption "mautrix-whatsapp, a puppeting/relaybot bridge between Matrix and WhatsApp";
package = lib.mkPackageOption pkgs "mautrix-whatsapp" { };
settings = lib.mkOption {
type = settingsFormat.type;
default = defaultConfig;
@@ -168,7 +170,7 @@ in
# generate the appservice's registration file if absent
if [ ! -f '${registrationFile}' ]; then
${pkgs.mautrix-whatsapp}/bin/mautrix-whatsapp \
${cfg.package}/bin/mautrix-whatsapp \
--generate-registration \
--config='${settingsFile}' \
--registration='${registrationFile}'
@@ -196,7 +198,7 @@ in
StateDirectory = baseNameOf dataDir;
WorkingDirectory = dataDir;
ExecStart = ''
${pkgs.mautrix-whatsapp}/bin/mautrix-whatsapp \
${cfg.package}/bin/mautrix-whatsapp \
--config='${settingsFile}' \
--registration='${registrationFile}'
'';