From b47ea12ff4442029c7016c13d5c55f86e10cbad3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20Tri=C3=B1anes?= Date: Mon, 5 May 2025 19:12:56 +0200 Subject: [PATCH] mise: statically generate nushell config --- modules/programs/mise.nix | 10 +++++----- .../programs/mise/nushell-integration.nix | 18 ++++++++++-------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/modules/programs/mise.nix b/modules/programs/mise.nix index 0dfe066e8..65ed2d150 100644 --- a/modules/programs/mise.nix +++ b/modules/programs/mise.nix @@ -129,12 +129,12 @@ in ''; nushell = mkIf (cfg.enableNushellIntegration && cfg.package != null) { - extraEnv = '' - let mise_path = $nu.default-config-dir | path join mise.nu - ^mise activate nu | save $mise_path --force - ''; extraConfig = '' - use ($nu.default-config-dir | path join mise.nu) + use ${ + pkgs.runCommand "mise-nushell-config.nu" { } '' + ${lib.getExe cfg.package} activate nu > $out + '' + } ''; }; }; diff --git a/tests/modules/programs/mise/nushell-integration.nix b/tests/modules/programs/mise/nushell-integration.nix index 761478845..6433e09a9 100644 --- a/tests/modules/programs/mise/nushell-integration.nix +++ b/tests/modules/programs/mise/nushell-integration.nix @@ -2,7 +2,14 @@ { programs = { mise = { - package = config.lib.test.mkStubPackage { name = "mise"; }; + package = config.lib.test.mkStubPackage { + name = "mise"; + buildScript = '' + mkdir -p $out/bin + touch $out/bin/mise + chmod +x $out/bin/mise + ''; + }; enable = true; enableNushellIntegration = true; }; @@ -11,12 +18,7 @@ }; nmt.script = '' - assertFileContains home-files/.config/nushell/env.nu \ - ' - let mise_path = $nu.default-config-dir | path join mise.nu - ^mise activate nu | save $mise_path --force - ' - assertFileContains home-files/.config/nushell/config.nu \ - 'use ($nu.default-config-dir | path join mise.nu)' + assertFileRegex home-files/.config/nushell/config.nu \ + 'use \/nix\/store\/.*-mise-nushell-config.nu' ''; }