diff --git a/modules/lib/zsh.nix b/modules/lib/zsh.nix index 651dfada4..d008ca475 100644 --- a/modules/lib/zsh.nix +++ b/modules/lib/zsh.nix @@ -7,9 +7,12 @@ rec { if builtins.isBool v then if v then "true" else "false" else if builtins.isString v then - ''"${v}"'' + lib.escapeShellArg v else if builtins.isList v then - "(${lib.concatStringsSep " " (map toZshValue v)})" + let + shell = import ./shell.nix { inherit lib; }; + in + "(${shell.formatShellArrayContent (map toString v)})" else ''"${toString v}"''; diff --git a/tests/modules/programs/zsh/prezto.nix b/tests/modules/programs/zsh/prezto.nix index 9a22f6f65..9605218f7 100644 --- a/tests/modules/programs/zsh/prezto.nix +++ b/tests/modules/programs/zsh/prezto.nix @@ -36,6 +36,6 @@ assertFileContains home-files/.zshenv \ '. "/home/hm-user/.nix-profile/etc/profile.d/hm-session-vars.sh"' assertFileContains home-files/.zshenv \ - 'export FOO="bar"' + 'export FOO=bar' ''; } diff --git a/tests/modules/programs/zsh/session-variables.nix b/tests/modules/programs/zsh/session-variables.nix index 0aa20c8c2..0c5ff6b6b 100644 --- a/tests/modules/programs/zsh/session-variables.nix +++ b/tests/modules/programs/zsh/session-variables.nix @@ -12,7 +12,7 @@ nmt.script = '' assertFileExists home-files/.zshenv - assertFileRegex home-files/.zshenv 'export V1="v1"' - assertFileRegex home-files/.zshenv 'export V2="v2-v1"' + assertFileRegex home-files/.zshenv 'export V1=v1' + assertFileRegex home-files/.zshenv 'export V2=v2-v1' ''; }