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' ''; }