{ lib, inputs, self, }: let # TODO: refactor the registry code registryAssembly = import ./registry.nix { inherit lib self; }; util = import ../lib { inherit lib; }; mkModules = import ./module.nix { inherit util; }; modules = mkModules { root = self + "/modules"; }; guestModules = guests.mkGuests { root = self + "/guests"; }; #---------------------------------------------------------- collectedRegistry = registryAssembly.collect { hosts = self.nixosConfigurations; }; specialArgs = { inherit inputs self util ; registry = collectedRegistry; }; guests = import ./guest.nix { inherit inputs lib specialArgs registryAssembly util ; repositoryModules = modules; }; hosts = import ./host.nix { inherit inputs lib specialArgs guestModules registryAssembly ; repositoryModules = modules; }; in { inherit (hosts) mkHosts; }