Improve clarity of ls alias generation

This commit is contained in:
SebastianStork 2024-05-02 16:16:55 +02:00
parent e7eaa7e482
commit 8730e3a2ee

View file

@ -18,22 +18,22 @@
lsAliases = let lsAliases = let
list = "${lib.getExe pkgs.eza} --header --group --time-style=long-iso --group-directories-first --sort=name --icons=auto --git --git-repos-no-status --binary"; list = "${lib.getExe pkgs.eza} --header --group --time-style=long-iso --group-directories-first --sort=name --icons=auto --git --git-repos-no-status --binary";
getFlag = alias: convertFlagAliasToFlag = char:
{ {
a = "--all"; a = "--all";
d = "--only-dirs"; d = "--only-dirs";
f = "--only-files"; f = "--only-files";
} }
.${alias}; .${char};
convertAliasesToFlags = str: "${lib.concatStringsSep " " (lib.forEach (lib.stringToCharacters str) getFlag)}"; convertFlagAliasesToFlags = str: "${lib.concatStringsSep " " (lib.forEach (lib.stringToCharacters str) convertFlagAliasToFlag)}";
flagCombos = lib.crossLists (a: b: "${a}${b}") [["" "a"] ["" "d" "f"]]; flagAliasCombos = lib.crossLists (a: b: "${a}${b}") [["" "a"] ["" "d" "f"]];
flagAttrs = lib.genAttrs flagAliasCombos convertFlagAliasesToFlags;
flaggedAliases = lib.concatMapAttrs (name: value: { aliasTemplate = name: value: {
"l${name}" = "${list} --oneline --dereference ${value}"; "l${name}" = "${list} --oneline --dereference ${value}";
"ll${name}" = "${list} --long ${value}"; "ll${name}" = "${list} --long ${value}";
"lt${name}" = "${list} --tree ${value}"; "lt${name}" = "${list} --tree ${value}";
}) };
(lib.genAttrs flagCombos convertAliasesToFlags); flaggedAliases = lib.concatMapAttrs aliasTemplate flagAttrs;
in in
flaggedAliases // {ls = "l";}; flaggedAliases // {ls = "l";};