1
0
Fork 0
mirror of https://github.com/nix-community/home-manager.git synced 2025-11-08 19:46:05 +01:00

direnv: update nushell env conversion logic (#6999)

Direnv exports PATH as a string, nu expects it to be a list and breaks
some functionality like external command completion. This requires
nushell 0.104.0, which is merged into nixpkgs-unstable.
This commit is contained in:
Kira 2025-05-09 10:23:08 -03:00 committed by GitHub
parent 3be7c80a11
commit f2b5bf55aa
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -175,6 +175,7 @@ in
# Using mkAfter to make it more likely to appear after other
# manipulations of the prompt.
programs.nushell.extraConfig = mkIf cfg.enableNushellIntegration (mkAfter ''
use std/config env-conversions
$env.config = ($env.config? | default {})
$env.config.hooks = ($env.config.hooks? | default {})
$env.config.hooks.pre_prompt = (
@ -186,8 +187,8 @@ in
| default {}
| items {|key, value|
let value = do (
$env.ENV_CONVERSIONS?
| default {}
{ PATH: (env-conversions).path }
| merge ($env.ENV_CONVERSIONS? | default {})
| get -i $key
| get -i from_string
| default {|x| $x}
@ -198,6 +199,7 @@ in
| load-env
}
)
hide env-conversions
'');
home.sessionVariables = lib.mkIf (cfg.silent && !isVersion236orHigher) { DIRENV_LOG_FORMAT = ""; };