{ nixpkgs, home-manager, sops-nix, nixpkgs-unstable, inputs }: with builtins; let overlay-unstable = final: prev: { unstable = nixpkgs-unstable.legacyPackages.x86_64-linux; }; in { mkMachine = host: host-config: modules: nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inherit inputs; }; modules = builtins.attrValues modules ++ [ ./base.nix sops-nix.nixosModules.sops host-config home-manager.nixosModules.home-manager { home-manager.useUserPackages = true; nixpkgs.overlays = [ inputs.neovim-nightly-overlay.overlay overlay-unstable (final: prev: { tinystatus = prev.pkgs.callPackage ./packages/tinystatus {}; mosh = prev.pkgs.callPackage ./packages/mosh {}; }) ]; } ]; }; importConfig = with builtins; path: (mapAttrs (name: value: import (path + "/${name}/default.nix")) (readDir path)); }