From f117b383dd591fd579bce5ee7bac07a3fdc1d050 Mon Sep 17 00:00:00 2001 From: Alex Hamilton <1622250+Aehmlo@users.noreply.github.com> Date: Sat, 28 Jun 2025 17:49:22 -0400 Subject: [PATCH] numbat: Allow specifying a path for initFile --- modules/programs/numbat.nix | 7 ++--- tests/modules/programs/numbat/default.nix | 1 + .../programs/numbat/external-initfile.nix | 27 +++++++++++++++++++ tests/modules/programs/numbat/init.nbt | 1 + 4 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 tests/modules/programs/numbat/external-initfile.nix create mode 100644 tests/modules/programs/numbat/init.nbt diff --git a/modules/programs/numbat.nix b/modules/programs/numbat.nix index f3d396645..4da1392d6 100644 --- a/modules/programs/numbat.nix +++ b/modules/programs/numbat.nix @@ -40,13 +40,14 @@ in }; initFile = lib.mkOption { - type = lib.types.nullOr lib.types.lines; + type = lib.types.nullOr (lib.types.either lib.types.lines lib.types.path); default = null; example = '' unit kohm: ElectricResistance = kV/A ''; description = '' - User initialization file ({file}`init.nbt`) contents. + User initialization file ({file}`init.nbt`) contents. May be specified + inline or as a path to a source file. ''; }; }; @@ -55,7 +56,7 @@ in home.packages = mkIf (cfg.package != null) [ cfg.package ]; home.file."${configDir}/init.nbt" = mkIf (cfg.initFile != null) { - text = cfg.initFile; + source = if lib.isString cfg.initFile then pkgs.writeText "init.nbt" cfg.initFile else cfg.initFile; }; home.file."${configDir}/config.toml" = mkIf (cfg.settings != { }) { diff --git a/tests/modules/programs/numbat/default.nix b/tests/modules/programs/numbat/default.nix index 86fa48f6a..c4c880848 100644 --- a/tests/modules/programs/numbat/default.nix +++ b/tests/modules/programs/numbat/default.nix @@ -1,4 +1,5 @@ { numbat-example-config = ./example-config.nix; numbat-empty-config = ./empty-config.nix; + numbat-external-initfile = ./external-initfile.nix; } diff --git a/tests/modules/programs/numbat/external-initfile.nix b/tests/modules/programs/numbat/external-initfile.nix new file mode 100644 index 000000000..8a637ffe6 --- /dev/null +++ b/tests/modules/programs/numbat/external-initfile.nix @@ -0,0 +1,27 @@ +{ + config, + pkgs, + ... +}: +let + configDir = + if pkgs.stdenv.hostPlatform.isDarwin then + "Library/Application Support/numbat" + else + ".config/numbat"; +in +{ + programs.numbat = { + enable = true; + package = config.lib.test.mkStubPackage { }; + initFile = ./init.nbt; + }; + + nmt.script = '' + assertFileExists 'home-files/${configDir}/init.nbt' + assertFileContent $(normalizeStorePaths 'home-files/${configDir}/init.nbt') \ + ${builtins.toFile "expected-init.nbt" '' + unit kohm: ElectricResistance = kV/A + ''} + ''; +} diff --git a/tests/modules/programs/numbat/init.nbt b/tests/modules/programs/numbat/init.nbt new file mode 100644 index 000000000..7d3e4b705 --- /dev/null +++ b/tests/modules/programs/numbat/init.nbt @@ -0,0 +1 @@ +unit kohm: ElectricResistance = kV/A