{ self, flake-utils, nixpkgs, deploy, home-manager, ... } @ inputs: (flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; in { packages = import ./pkgs {inherit pkgs;}; devShell = pkgs.callPackage ./shell.nix { # inherit (deploy.packages.${pkgs.system}) deploy-rs; }; formatter = pkgs.alejandra; })) // { # homeConfigurations.patrick = home-manager.lib.homeManagerConfiguration { # pkgs = import nixpkgs { # system = "x86_64-linux"; # # config.allowUnfree = true; # }; # }; nixosConfigurations = import ./nixos/configurations.nix (inputs // {inherit inputs;}); deploy.nodes = builtins.mapAttrs (name: value: { hostname = value.config.remote.ip; profiles.system = { sshUser = value.config.remote.sshUser; sshOpts = ["-p" (builtins.toString value.config.remote.sshPort)]; remoteBuild = value.config.remote.remoteBuild; path = deploy.lib.x86_64-linux.activate.nixos value; }; }) self.nixosConfigurations; colmena = { meta = { nixpkgs = nixpkgs.legacyPackages.x86_64-linux; nodeNixpkgs = builtins.mapAttrs (name: value: value.pkgs) self.nixosConfigurations; nodeSpecialArgs = builtins.mapAttrs (name: value: value._module.specialArgs) self.nixosConfigurations; }; } // builtins.mapAttrs (name: value: { deployment = { targetHost = value.config.remote.ip; targetPort = value.config.remote.sshPort; buildOnTarget = value.config.remote.remoteBuild; inherit (value.config.remote) allowLocalDeployment; }; imports = value._module.args.modules; }) self.nixosConfigurations; checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) deploy.lib; }