From 7f01ff7822ac74f2e92a6fcc5367c16838038dd4 Mon Sep 17 00:00:00 2001 From: Shawn8901 Date: Mon, 18 Apr 2022 17:35:58 +0200 Subject: [PATCH] nixos/prometheus: use pkgs.formats.json.generate to write config file The old way of writing the file omited qoutes within strings which are needed by some configurations like federations. The quotes got lost when `echo`ing the content via `echo '${builtins.toJSON x}'`. The pkgs.formats.json does handle that race condition properly, so this commit switches the writing to that helper. --- nixos/modules/services/monitoring/prometheus/default.nix | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/nixos/modules/services/monitoring/prometheus/default.nix b/nixos/modules/services/monitoring/prometheus/default.nix index 52525e8935b..ceb2db1faef 100644 --- a/nixos/modules/services/monitoring/prometheus/default.nix +++ b/nixos/modules/services/monitoring/prometheus/default.nix @@ -3,6 +3,7 @@ with lib; let + json = pkgs.formats.json { }; cfg = config.services.prometheus; workingDir = "/var/lib/" + cfg.stateDir; @@ -34,13 +35,7 @@ let promtool ${what} $out '' else file; - # Pretty-print JSON to a file - writePrettyJSON = name: x: - pkgs.runCommandLocal name { } '' - echo '${builtins.toJSON x}' | ${pkgs.jq}/bin/jq . > $out - ''; - - generatedPrometheusYml = writePrettyJSON "prometheus.yml" promConfig; + generatedPrometheusYml = json.generate "prometheus.yml" promConfig; # This becomes the main config file for Prometheus promConfig = {