From f00f508bdb5ba9c23669ce1dae0d5a6ad64d7e6d Mon Sep 17 00:00:00 2001 From: DCsunset Date: Sun, 8 Sep 2024 19:35:18 +0000 Subject: [PATCH] nixos/soju: add option to overwrite generated configFile --- nixos/modules/services/networking/soju.nix | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/nixos/modules/services/networking/soju.nix b/nixos/modules/services/networking/soju.nix index 0f4969b930e4..483e672c0443 100644 --- a/nixos/modules/services/networking/soju.nix +++ b/nixos/modules/services/networking/soju.nix @@ -27,7 +27,7 @@ let ''; sojuctl = pkgs.writeShellScriptBin "sojuctl" '' - exec ${cfg.package}/bin/sojuctl --config ${configFile} "$@" + exec ${lib.getExe' cfg.package "sojuctl"} --config ${cfg.configFile} "$@" ''; in { @@ -107,7 +107,18 @@ in extraConfig = mkOption { type = types.lines; default = ""; - description = "Lines added verbatim to the configuration file."; + description = "Lines added verbatim to the generated configuration file."; + }; + + configFile = mkOption { + type = types.path; + default = configFile; + defaultText = "Config file generated from other options."; + description = '' + Path to config file. If this option is set, it will override any + configuration done using other options, including {option}`extraConfig`. + ''; + example = literalExpression "./soju.conf"; }; }; @@ -134,7 +145,7 @@ in serviceConfig = { DynamicUser = true; Restart = "always"; - ExecStart = "${cfg.package}/bin/soju -config ${configFile}"; + ExecStart = "${lib.getExe' cfg.package "soju"} -config ${cfg.configFile}"; StateDirectory = "soju"; RuntimeDirectory = "soju"; };