From 9e10d73cea313708e9f9b98114963fbaac6ec99b Mon Sep 17 00:00:00 2001 From: Aguirre Matteo <158215792+aguirre-matteo@users.noreply.github.com> Date: Fri, 9 May 2025 13:20:05 +0000 Subject: [PATCH] onlyoffice: use pkgs.formats and use mkIf in config file generation (#7006) --- modules/programs/onlyoffice.nix | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/modules/programs/onlyoffice.nix b/modules/programs/onlyoffice.nix index dcf11743f..9d1f7604d 100644 --- a/modules/programs/onlyoffice.nix +++ b/modules/programs/onlyoffice.nix @@ -7,11 +7,6 @@ let inherit (lib) - types - isBool - boolToString - concatStringsSep - mapAttrsToList mkIf mkEnableOption mkPackageOption @@ -19,15 +14,7 @@ let ; cfg = config.programs.onlyoffice; - - attrToString = - name: value: - let - newvalue = if (isBool value) then (boolToString value) else value; - in - "${name}=${newvalue}"; - - getFinalConfig = set: (concatStringsSep "\n" (mapAttrsToList attrToString set)) + "\n"; + formatter = pkgs.formats.keyValue { }; in { meta.maintainers = with lib.hm.maintainers; [ aguirre-matteo ]; @@ -38,7 +25,7 @@ in package = mkPackageOption pkgs "onlyoffice-desktopeditors" { nullable = true; }; settings = mkOption { - type = with types; attrsOf (either bool str); + type = formatter.type; default = { }; example = '' UITheme = "theme-contrast-dark"; @@ -59,8 +46,8 @@ in config = mkIf cfg.enable { home.packages = lib.mkIf (cfg.package != null) [ cfg.package ]; - xdg.configFile."onlyoffice/DesktopEditors.conf".source = pkgs.writeText "DesktopEditors.conf" ( - getFinalConfig cfg.settings - ); + xdg.configFile."onlyoffice/DesktopEditors.conf" = mkIf (cfg.settings != { }) { + source = formatter.generate "onlyoffice-config" cfg.settings; + }; }; }