1
0
Fork 0
mirror of https://github.com/nix-community/home-manager synced 2024-11-16 16:19:44 +01:00

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
This commit is contained in:
K900 2024-09-25 09:39:06 +03:00 committed by GitHub
parent 21c021862f
commit 1e22ef1518
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 10 additions and 4 deletions

View file

@ -140,9 +140,15 @@ in {
$env.config.hooks.pre_prompt?
| default []
| append {||
let direnv = (${getExe cfg.package} export json
| from json
| default {})
let direnv = (
try {
${getExe cfg.package} export json
} catch {
""
}
| from json
| default {}
)
if ($direnv | is-empty) {
return
}

View file

@ -14,6 +14,6 @@
in ''
assertFileExists "${configFile}"
assertFileRegex "${configFile}" \
'^\s*let direnv = (/nix/store/.*direnv.*/bin/direnv export json$'
'^\s*/nix/store/.*direnv.*/bin/direnv export json$'
'';
}