fix: EnvironmentFile directive in module.nix

This commit is contained in:
Henri Bourcereau 2026-05-19 22:51:33 +02:00
parent a4a79de732
commit ea0c7837a9

View file

@ -175,6 +175,13 @@ in
install -m 644 ${pkgs.trictrac}/GameConfig.json "$STATE_DIRECTORY/GameConfig.json" install -m 644 ${pkgs.trictrac}/GameConfig.json "$STATE_DIRECTORY/GameConfig.json"
fi fi
''; '';
smtpEnvScript = if cfg.smtp.passwordFile != null then
pkgs.writeShellScript "trictrac-smtp-env" ''
set -euo pipefail
printf 'SMTP_PASS=%s\n' "$(< ${cfg.smtp.passwordFile})" > /run/trictrac/smtp.env
chmod 400 /run/trictrac/smtp.env
''
else null;
in in
{ {
description = "trictrac relay server"; description = "trictrac relay server";
@ -201,10 +208,12 @@ in
# systemd creates /var/lib/trictrac and sets STATE_DIRECTORY accordingly # systemd creates /var/lib/trictrac and sets STATE_DIRECTORY accordingly
StateDirectory = "trictrac"; StateDirectory = "trictrac";
StateDirectoryMode = "0755"; StateDirectoryMode = "0755";
# systemd creates /run/trictrac for the smtp.env file
RuntimeDirectory = "trictrac";
WorkingDirectory = "/var/lib/trictrac"; WorkingDirectory = "/var/lib/trictrac";
ExecStartPre = "${setupScript}"; ExecStartPre = [ "${setupScript}" ] ++ optional (smtpEnvScript != null) "+${smtpEnvScript}";
ExecStart = "${pkgs.trictrac}/bin/relay-server"; ExecStart = "${pkgs.trictrac}/bin/relay-server";
EnvironmentFile = mkIf (cfg.smtp.passwordFile != null) cfg.smtp.passwordFile; EnvironmentFile = mkIf (cfg.smtp.passwordFile != null) "/run/trictrac/smtp.env";
Restart = "on-failure"; Restart = "on-failure";
RestartSec = "5s"; RestartSec = "5s";
}; };