1
0
Fork 0
mirror of https://github.com/numtide/flake-utils.git synced 2025-03-15 04:58:05 +00:00

lib: eachSystem: inline single-use local variables

Inline single-use local variables to minimize cognitive load while
reading the code, unless they cache computational results.
This commit is contained in:
NAHO 2024-09-11 19:45:32 +02:00
parent 274ed073aa
commit ce5c962a8c
No known key found for this signature in database
GPG key ID: 229CB671D09B95F5

17
lib.nix
View file

@ -29,24 +29,25 @@ let
# Builds a map from <attr>=value to <attr>.<system>=value for each system. # Builds a map from <attr>=value to <attr>.<system>=value for each system.
eachSystem = eachSystem =
systems: f: systems: f:
let builtins.foldl'
(
# Merge outputs for each system. # Merge outputs for each system.
op =
attrs: system: attrs: system:
let let
ret = f system; ret = f system;
op = in
builtins.foldl' (
attrs: key: attrs: key:
attrs attrs
// { // {
${key} = (attrs.${key} or { }) // { ${key} = (attrs.${key} or { }) // {
${system} = ret.${key}; ${system} = ret.${key};
}; };
}; }
in ) attrs (builtins.attrNames ret)
builtins.foldl' op attrs (builtins.attrNames ret); )
in { }
builtins.foldl' op { } ( (
systems systems
++ ++
# Add the current system if the --impure flag is used. # Add the current system if the --impure flag is used.