home-manager/tests/modules/programs/direnv/nushell.nix
K900 1e22ef1518
direnv: update for new nushell behavior (#5880)
Nushell 0.98 makes it so external commands returning non-zero
is considered an exception[0]. Wrap the direnv invocation in a
try-catch, so that even if direnv fails, we get the message
from direnv, but not the traceback from nushell.

[0]: https://www.nushell.sh/blog/2024-09-17-nushell_0_98_0.html#non-zero-exit-codes-are-now-errors-toc
2024-09-25 00:39:06 -06:00

19 lines
479 B
Nix

{ pkgs, config, ... }:
{
programs.nushell.enable = true;
programs.direnv.enable = true;
test.stubs.nushell = { };
nmt.script = let
configFile = if pkgs.stdenv.isDarwin && !config.xdg.enable then
"home-files/Library/Application Support/nushell/config.nu"
else
"home-files/.config/nushell/config.nu";
in ''
assertFileExists "${configFile}"
assertFileRegex "${configFile}" \
'^\s*/nix/store/.*direnv.*/bin/direnv export json$'
'';
}