imapnotify: use direct nix store path for config

As pointed out in #3291, using the XDG symlink means the agent/unit
files don’t change when the contents of the config changes, and so the
service will not be restarted.
This commit is contained in:
David Baynard 2023-07-07 23:08:00 +01:00 committed by Robert Helgesson
parent 86157256d2
commit fad475553a
No known key found for this signature in database
GPG Key ID: 36BDAA14C2797E89
3 changed files with 9 additions and 11 deletions

View File

@ -21,10 +21,9 @@ let
Unit = { Description = "imapnotify for ${name}"; };
Service = {
# Use the nix store path for config to ensure service restarts when it changes
ExecStart =
"${getExe cfg.package} -conf '${config.xdg.configHome}/imapnotify/${
configName account
}'";
"${getExe cfg.package} -conf '${genAccountConfig account}'";
Restart = "always";
RestartSec = 30;
Type = "simple";
@ -44,11 +43,9 @@ let
value = {
enable = true;
config = {
ProgramArguments = [
"${getExe cfg.package}"
"-conf"
"${config.xdg.configHome}/imapnotify/${configName account}"
];
# Use the nix store path for config to ensure service restarts when it changes
ProgramArguments =
[ "${getExe cfg.package}" "-conf" "${genAccountConfig account}" ];
KeepAlive = true;
ThrottleInterval = 30;
ExitTimeOut = 0;

View File

@ -33,8 +33,9 @@ with lib;
nmt.script = let
serviceFileName = "org.nix-community.home.imapnotify-hm-example.com.plist";
in ''
serviceFile=LaunchAgents/${serviceFileName}
serviceFile="LaunchAgents/${serviceFileName}"
serviceFileNormalized="$(normalizeStorePaths "$serviceFile")"
assertFileExists $serviceFile
assertFileContent $serviceFile ${./launchd.plist}
assertFileContent $serviceFileNormalized ${./launchd.plist}
'';
}

View File

@ -19,7 +19,7 @@
<array>
<string>@goimapnotify@/bin/goimapnotify</string>
<string>-conf</string>
<string>/home/hm-user/.config/imapnotify/imapnotify-hm-example.com-config.json</string>
<string>/nix/store/00000000000000000000000000000000-imapnotify-hm-example.com-config.json</string>
</array>
<key>RunAtLoad</key>
<true/>