nixos/shells: enable to nullify already defined aliases

This commit is contained in:
Mitsuhiro Nakamura 2018-10-12 22:58:35 +09:00
parent 3b5449b80c
commit c941577dcb
4 changed files with 12 additions and 8 deletions

View File

@ -108,13 +108,14 @@ in
};
environment.shellAliases = mkOption {
example = { ll = "ls -l"; };
example = { l = null; ll = "ls -l"; };
description = ''
An attribute set that maps aliases (the top level attribute names in
this option) to command strings or directly to build outputs. The
aliases are added to all users' shells.
Aliases mapped to <code>null</code> are ignored.
'';
type = with types; attrsOf (either str path);
type = with types; attrsOf (nullOr (either str path));
};
environment.binsh = mkOption {

View File

@ -33,7 +33,8 @@ let
'';
bashAliases = concatStringsSep "\n" (
mapAttrsFlatten (k: v: "alias ${k}=${escapeShellArg v}") cfg.shellAliases
mapAttrsFlatten (k: v: "alias ${k}=${escapeShellArg v}")
(filterAttrs (k: v: !isNull v) cfg.shellAliases)
);
in
@ -64,7 +65,7 @@ in
Set of aliases for bash shell, which overrides <option>environment.shellAliases</option>.
See <option>environment.shellAliases</option> for an option format description.
'';
type = with types; attrsOf (either str path);
type = with types; attrsOf (nullOr (either str path));
};
shellInit = mkOption {

View File

@ -9,7 +9,8 @@ let
cfg = config.programs.fish;
fishAliases = concatStringsSep "\n" (
mapAttrsFlatten (k: v: "alias ${k} ${escapeShellArg v}") cfg.shellAliases
mapAttrsFlatten (k: v: "alias ${k} ${escapeShellArg v}")
(filterAttrs (k: v: !isNull v) cfg.shellAliases)
);
in
@ -58,7 +59,7 @@ in
Set of aliases for fish shell, which overrides <option>environment.shellAliases</option>.
See <option>environment.shellAliases</option> for an option format description.
'';
type = with types; attrsOf (either str path);
type = with types; attrsOf (nullOr (either str path));
};
shellInit = mkOption {

View File

@ -11,7 +11,8 @@ let
cfg = config.programs.zsh;
zshAliases = concatStringsSep "\n" (
mapAttrsFlatten (k: v: "alias ${k}=${escapeShellArg v}") cfg.shellAliases
mapAttrsFlatten (k: v: "alias ${k}=${escapeShellArg v}")
(filterAttrs (k: v: !isNull v) cfg.shellAliases)
);
in
@ -39,7 +40,7 @@ in
Set of aliases for zsh shell, which overrides <option>environment.shellAliases</option>.
See <option>environment.shellAliases</option> for an option format description.
'';
type = with types; attrsOf (either str path);
type = with types; attrsOf (nullOr (either str path));
};
shellInit = mkOption {