fix: NixOS module: fix /etc/headplane/config.yaml generation

This commit is contained in:
Igor Ramazanov 2025-03-11 20:22:47 +00:00
parent 12592936f1
commit 49c7be3e05

View File

@ -13,13 +13,17 @@
types types
; ;
cfg = config.services.headplane; cfg = config.services.headplane;
settingsFormat = pkgs.formats.yaml {};
settingsFile = settingsFormat.generate "headplane-config.yaml" cfg.settings;
in { in {
options.services.headplane = { options.services.headplane = {
enable = mkEnableOption "headplane"; enable = mkEnableOption "headplane";
package = mkPackageOption pkgs "headplane" {}; package = mkPackageOption pkgs "headplane" {};
settings = mkOption { settings = mkOption {
type = with types; attrsOf (oneOf [str int bool]); type = types.submodule {
freeformType = settingsFormat.type;
};
default = {}; default = {};
}; };
@ -56,10 +60,7 @@ in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
environment.systemPackages = [cfg.package]; environment.systemPackages = [cfg.package];
environment.etc."headplane/config.yaml".source = let environment.etc."headplane/config.yaml".source = "${settingsFile}";
format = pkgs.formats.yaml {};
headplaneConfig = format.generate "headplane-config.yaml" cfg.settings;
in "${headplaneConfig}";
systemd.services.headplane-agent = systemd.services.headplane-agent =
mkIf cfg.agent.enable mkIf cfg.agent.enable