rec { sources = import ./nix/sources.nix; pkgs = import ./pkgs { inherit sources; }; modList = import ./lib/modules.nix; profiles = modList { modulesDir = ./profiles; }; users = modList { modulesDir = ./users; }; inherit (import ./lib/hosts.nix { inherit pkgs sources profiles users; inherit (deploy) target; }) hosts targets; inherit (pkgs) lib; runners = import ./runners.nix { inherit lib; inherit (deploy) target; }; sourceCache = with lib; let getSources = sources: removeAttrs sources [ "__functor" "dorkfiles" ]; source2drv = value: if isDerivation value.outPath then value.outPath else value; sources2drvs = sources: mapAttrs (_: source2drv) (getSources sources); in recurseIntoAttrs rec { local = sources2drvs sources; hexchen = sources2drvs (import sources.nix-hexchen {}).sources; all = attrValues local ++ attrValues hexchen; allStr = toString all; }; deploy = import ./lib/deploy.nix { inherit pkgs sources; inherit hosts targets; }; }