./flake.nix
{
description = "Hennzau Flake Configuration";
inputs = {
nixpkgs.url = "nixpkgs/nixos-25.11";
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
nur = {
url = "github:nix-community/nur";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
};
outputs =
{
self,
nixpkgs,
nixpkgs-unstable,
home-manager,
...
}@inputs:
let
nlib = nixpkgs.lib;
hlib = home-manager.lib;
hosts = builtins.filter (x: x != null) (
nlib.mapAttrsToList (name: value: if (value == "directory") then name else null) (
builtins.readDir ./hosts
)
);
pkgs-unstable = nixpkgs-unstable.legacyPackages."x86_64-linux";
in
{
nixosConfigurations = builtins.listToAttrs (
map (host: {
name = host;
value = nlib.nixosSystem {
system = "x86_64-linux";
modules = [
{ networking.hostName = host; }
{ users.users.enzolevan.shell = "${pkgs-unstable.nushell}/bin/nu"; }
(./hosts + "/${host}")
];
specialArgs = {
inherit inputs;
};
};
}) hosts
);
homeConfigurations = builtins.listToAttrs (
map (host: {
name = host;
value = hlib.homeManagerConfiguration {
pkgs = pkgs-unstable;
modules = [ (./hosts + "/${host}/home.nix") ];
extraSpecialArgs = {
inherit inputs;
};
};
}) hosts
);
};
}