final: _: let inherit (final) lib; linkToPath = path: fileOrDir: (if final.lib.types.path.check fileOrDir then [{ name = lib.concatStringsSep "/" path; path = fileOrDir; }] else lib.concatLists (lib.mapAttrsToList (dirName: linkToPath (path ++ [ dirName ])) fileOrDir)); in { recursiveLinkFarm = name: files: final.linkFarm name (linkToPath [ ] files); }