From 7f63bcba36ecf2442fbe1caaf64255e6d82aa2e7 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Tue, 8 Oct 2024 10:21:05 +0100 Subject: [PATCH] nixos/nncp: refactor configuration merging The NNCP utilities have poor support for configuration merging so use jq and hjson-cli instead. --- nixos/modules/programs/nncp.nix | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/nixos/modules/programs/nncp.nix b/nixos/modules/programs/nncp.nix index 3feccef4cf11e54..6ac0363e50a0c2e 100644 --- a/nixos/modules/programs/nncp.nix +++ b/nixos/modules/programs/nncp.nix @@ -74,19 +74,13 @@ in { wantedBy = [ "basic.target" ]; serviceConfig.Type = "oneshot"; script = '' - umask u=rw - nncpCfgDir=$(mktemp --directory nncp.XXX) - for f in ${jsonCfgFile} ${builtins.toString config.programs.nncp.secrets}; do - tmpdir=$(mktemp --directory nncp.XXX) - nncp-cfgdir -cfg $f -dump $tmpdir - find $tmpdir -size 1c -delete - cp -a $tmpdir/* $nncpCfgDir/ - rm -rf $tmpdir - done - nncp-cfgdir -load $nncpCfgDir > ${nncpCfgFile} - rm -rf $nncpCfgDir + umask 127 + rm -f ${nncpCfgFile} + for f in ${jsonCfgFile} ${builtins.toString config.programs.nncp.secrets} + do + ${lib.getExe pkgs.hjson-go} -c <"$f" + done |${lib.getExe pkgs.jq} --slurp add >${nncpCfgFile} chgrp ${programCfg.group} ${nncpCfgFile} - chmod g+r ${nncpCfgFile} ''; }; };