let npins = import ./npins; overlays = import ./overlays { inherit npins; }; nixosConfigurations = import ./machines { inherit lib npins; }; lib = (import "${npins.nixpkgs}/lib").extend ( final: prev: { zpha = import ./lib { inherit npins; lib = prev; }; } ); in { inherit overlays nixosConfigurations ; nixosModules = import ./nixosModules { inherit lib; }; formatter = lib.zpha.forAllSystems { inherit (npins) nixpkgs; body = pkgs: pkgs.nixfmt-rfc-style; }; packages = lib.zpha.forAllSystems { overlays = overlays.default; body = pkgs: lib.mergeAttrsList [ (import ./packages pkgs) (lib.flip lib.mapAttrs' nixosConfigurations ( machineName: nixosConfiguration: lib.nameValuePair "setupDisk-${machineName}" ( pkgs.zpha.setupDisk.override { systemConfig = nixosConfiguration.config; } ) )) ]; }; deploy = { activationTimeout = 600; confirmTimeout = 240; nodes = lib.flip builtins.mapAttrs nixosConfigurations ( _: nixosConfiguration: let inherit (nixosConfiguration) config pkgs; in { hostname = config.networking.fqdn; sshUser = "root"; sshOpts = [ "-p" (toString (lib.head config.services.openssh.ports)) ]; profiles.system = { user = "root"; path = pkgs.zpha.deployrsActivator.override { systemConfig = config; }; }; } ); }; }