mirror of
https://github.com/nix-community/home-manager
synced 2024-11-26 21:19:45 +01:00
keychain: fix edge-cases in nushell integration
- If the parse does not match/returns an empty list, transpose does not transform it into a record and thus load-env fails. - The parsing assumes keychain to emit bash-style completions, so set SHELL=bash to ensure keychain output is in the expected format. PR #4459
This commit is contained in:
parent
dd88dbc694
commit
0f4e5b4999
1 changed files with 4 additions and 1 deletions
|
@ -117,7 +117,10 @@ in {
|
||||||
eval "$(SHELL=zsh ${shellCommand})"
|
eval "$(SHELL=zsh ${shellCommand})"
|
||||||
'';
|
'';
|
||||||
programs.nushell.extraConfig = mkIf cfg.enableNushellIntegration ''
|
programs.nushell.extraConfig = mkIf cfg.enableNushellIntegration ''
|
||||||
${shellCommand} | parse -r '(\w+)=(.*); export \1' | transpose -ird | load-env
|
let keychain_shell_command = (SHELL=bash ${shellCommand}| parse -r '(\w+)=(.*); export \1' | transpose -ird)
|
||||||
|
if not ($keychain_shell_command|is-empty) {
|
||||||
|
$keychain_shell_command | load-env
|
||||||
|
}
|
||||||
'';
|
'';
|
||||||
xsession.initExtra = mkIf cfg.enableXsessionIntegration ''
|
xsession.initExtra = mkIf cfg.enableXsessionIntegration ''
|
||||||
eval "$(SHELL=bash ${shellCommand})"
|
eval "$(SHELL=bash ${shellCommand})"
|
||||||
|
|
Loading…
Reference in a new issue