nixos/soju: add option to overwrite generated configFile

This commit is contained in:
DCsunset 2024-09-08 19:35:18 +00:00
parent 8588b1599e
commit f00f508bdb

View File

@ -27,7 +27,7 @@ let
''; '';
sojuctl = pkgs.writeShellScriptBin "sojuctl" '' sojuctl = pkgs.writeShellScriptBin "sojuctl" ''
exec ${cfg.package}/bin/sojuctl --config ${configFile} "$@" exec ${lib.getExe' cfg.package "sojuctl"} --config ${cfg.configFile} "$@"
''; '';
in in
{ {
@ -107,7 +107,18 @@ in
extraConfig = mkOption { extraConfig = mkOption {
type = types.lines; type = types.lines;
default = ""; 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 = { serviceConfig = {
DynamicUser = true; DynamicUser = true;
Restart = "always"; Restart = "always";
ExecStart = "${cfg.package}/bin/soju -config ${configFile}"; ExecStart = "${lib.getExe' cfg.package "soju"} -config ${cfg.configFile}";
StateDirectory = "soju"; StateDirectory = "soju";
RuntimeDirectory = "soju"; RuntimeDirectory = "soju";
}; };