nixos: optionally wrap syndicate-server with dbus-run-session
This commit is contained in:
parent
e905aada34
commit
f75b35090e
|
@ -20,6 +20,8 @@ with lib;
|
|||
options = {
|
||||
enable = mkEnableOption "this Syndicate dataspace server instance";
|
||||
|
||||
runInDbusSession = mkEnableOption "dbus-run-session wrapper";
|
||||
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
example = "jane";
|
||||
|
@ -52,7 +54,8 @@ with lib;
|
|||
in builtins.listToAttrs (lib.lists.flatten (lib.attrsets.mapAttrsToList
|
||||
(name: cfg:
|
||||
let
|
||||
configFileName = ".syndicate-nixos-config.pr";
|
||||
configFileName = "syndicate-nixos-config.pr";
|
||||
runtimeConfig = "\${RUNTIME_DIRECTORY}/${configFileName}";
|
||||
configFile = pkgs.writeText configFileName
|
||||
(lib.strings.concatMapStrings (dir: ''
|
||||
<require-service <config-watcher "${dir}" $.>>
|
||||
|
@ -61,13 +64,16 @@ with lib;
|
|||
name = "syndicate-${name}";
|
||||
value = let
|
||||
serviceConfig = let
|
||||
linkConfig =
|
||||
"${pkgs.coreutils}/bin/ln -sf ${configFile} ${configFileName}";
|
||||
loadConfig =
|
||||
"${pkgs.coreutils}/bin/cp ${configFile} ${runtimeConfig}";
|
||||
in {
|
||||
ExecStartPre = linkConfig;
|
||||
ExecStart =
|
||||
"${cfg.package}/bin/syndicate-server --no-banner --config ${configFileName}";
|
||||
ExecReload = linkConfig;
|
||||
RuntimeDirectory = name;
|
||||
ExecStartPre = loadConfig;
|
||||
ExecStart = "${
|
||||
lib.optionalString cfg.runInDbusSession
|
||||
"${pkgs.dbus}/bin/dbus-run-session "
|
||||
}${cfg.package}/bin/syndicate-server --no-banner --config ${runtimeConfig}";
|
||||
ExecReload = loadConfig;
|
||||
User = cfg.user;
|
||||
};
|
||||
in {
|
||||
|
|
Loading…
Reference in New Issue