summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTianyao Chou <tianyaochou@fastmail.com>2022-06-30 17:42:57 +0200
committerTianyao Chou <tianyaochou@fastmail.com>2022-06-30 19:21:36 +0200
commita3cab812ac424ce6115c66d441ceaa454f59f3ae (patch)
tree74dd9d5d572490b1ee681419babcc67007e7a2ad
parent2f2bdf658d2b79bada78dc914af99c53cad37cba (diff)
add escape to shell aliases
-rw-r--r--modules/environment/default.nix3
-rw-r--r--modules/programs/fish.nix3
-rw-r--r--tests/programs-zsh.nix2
3 files changed, 5 insertions, 3 deletions
diff --git a/modules/environment/default.nix b/modules/environment/default.nix
index 601b0ca..aa713f6 100644
--- a/modules/environment/default.nix
+++ b/modules/environment/default.nix
@@ -9,7 +9,8 @@ let
mapAttrsToList (n: v: ''export ${n}="${v}"'') cfg.variables;
aliasCommands =
- mapAttrsFlatten (n: v: ''alias ${n}="${v}"'') cfg.shellAliases;
+ mapAttrsFlatten (n: v: ''alias ${n}=${escapeShellArg v}'')
+ (filterAttrs (k: v: v != null) cfg.shellAliases);
makeDrvBinPath = concatMapStringsSep ":" (p: if isDerivation p then "${p}/bin" else p);
in
diff --git a/modules/programs/fish.nix b/modules/programs/fish.nix
index 8285364..7a1ba10 100644
--- a/modules/programs/fish.nix
+++ b/modules/programs/fish.nix
@@ -9,7 +9,8 @@ let
cfg = config.programs.fish;
fishAliases = concatStringsSep "\n" (
- mapAttrsFlatten (k: v: "alias ${k} '${v}'") cfg.shellAliases
+ mapAttrsFlatten (k: v: "alias ${k} ${escapeShellArg v}")
+ (filterAttrs (k: v: v != null) cfg.shellAliases)
);
envShellInit = pkgs.writeText "shellInit" cfge.shellInit;
diff --git a/tests/programs-zsh.nix b/tests/programs-zsh.nix
index ba03229..dd5f6e9 100644
--- a/tests/programs-zsh.nix
+++ b/tests/programs-zsh.nix
@@ -43,6 +43,6 @@
echo >&2 "checking zsh variables in /etc/zprofile"
grep 'FOO="42"' ${config.out}/etc/zprofile
echo >&2 "checking shell aliases in /etc/zprofile"
- grep 'alias ls="ls -G"' ${config.out}/etc/zprofile
+ grep "alias ls='ls -G'" ${config.out}/etc/zprofile
'';
}