From 13fbbe382fbc6dd4a20cb53afd51f7e2394fa61f Mon Sep 17 00:00:00 2001 From: Robin Stumm Date: Fri, 28 Mar 2025 12:33:17 +0100 Subject: [PATCH] broot: avoid IFD --- modules/programs/broot.nix | 21 +++++++-------------- tests/modules/programs/broot/broot.nix | 4 ++-- 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/modules/programs/broot.nix b/modules/programs/broot.nix index 8cc6338c1..e2fb185fe 100644 --- a/modules/programs/broot.nix +++ b/modules/programs/broot.nix @@ -6,10 +6,10 @@ let cfg = config.programs.broot; - tomlFormat = pkgs.formats.toml { }; + jsonFormat = pkgs.formats.json { }; settingsModule = { - freeformType = tomlFormat.type; + freeformType = jsonFormat.type; options = { modal = mkEnableOption "modal (vim) mode"; @@ -194,24 +194,17 @@ in { # Dummy file to prevent broot from trying to reinstall itself (pkgs.writeTextDir "launcher/installed-v1" "") ]; - postBuild = '' - ln -s ${ - tomlFormat.generate "broot-config" cfg.settings - } $out/conf.toml - - # Remove conf.hjson, whose content has been merged into programs.broot.settings rm $out/conf.hjson + ${lib.getExe pkgs.jq} --slurp add > $out/conf.hjson \ + <(${ + lib.getExe pkgs.hjson-go + } -c ${cfg.package.src}/resources/default-conf/conf.hjson) \ + ${jsonFormat.generate "broot-config.json" cfg.settings} ''; }; }; - programs.broot.settings = builtins.fromJSON (builtins.readFile - (pkgs.runCommand "default-conf.json" { - nativeBuildInputs = [ pkgs.hjson-go ]; - } - "hjson-cli -c ${cfg.package.src}/resources/default-conf/conf.hjson > $out")); - programs.bash.initExtra = mkIf cfg.enableBashIntegration (shellInit "bash"); programs.zsh.initContent = mkIf cfg.enableZshIntegration (shellInit "zsh"); diff --git a/tests/modules/programs/broot/broot.nix b/tests/modules/programs/broot/broot.nix index d4f60a7c2..ef1d325bc 100644 --- a/tests/modules/programs/broot/broot.nix +++ b/tests/modules/programs/broot/broot.nix @@ -9,7 +9,7 @@ nixpkgs.overlays = [ (self: super: { inherit (realPkgs) broot hjson-go; }) ]; nmt.script = '' - assertFileExists home-files/.config/broot/conf.toml - assertFileContains home-files/.config/broot/conf.toml 'modal = true' + assertFileExists home-files/.config/broot/conf.hjson + assertFileContains home-files/.config/broot/conf.hjson '"modal": true' ''; }