{ nixpkgs, disko, sops, gather, ... }@inputs: let deploymentPkgs = import nixpkgs { localSystem.system = "x86_64-linux"; }; machines = deploymentPkgs.callPackage ./machines.nix { }; in with deploymentPkgs.lib; let mkMachine = machine: { lib, ... }: { imports = [ ./shared ./modules (import /${machine.path} machine.opts) disko.nixosModules.disko sops.nixosModules.sops gather.nixosModules.gather ]; _module.args = { inherit machine; }; }; in { meta = { nixpkgs = deploymentPkgs; specialArgs = { inherit inputs; }; }; } // (listToAttrs (map (machine: nameValuePair machine.name (mkMachine machine)) machines))