os/lib/recursive-merge.nix
teutat3s 9da43e427e
Some checks failed
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is failing
wip: migrate to flake-parts
2024-01-06 10:46:10 +01:00

17 lines
331 B
Nix

{ lib }:
attrList:
let
f = attrPath:
zipAttrsWith (
n: values:
if tail values == []
then head values
else if all isList values
then unique (concatLists values)
else if all isAttrs values
then f (attrPath ++ [n]) values
else last values
);
in
f [] attrList;