48 lines
882 B
Nix
48 lines
882 B
Nix
{
|
|
metadata,
|
|
nixpkgs,
|
|
top,
|
|
}:
|
|
let
|
|
inherit (top.nixunstable) lib;
|
|
mac =
|
|
{
|
|
system ? "aarch64-darwin",
|
|
name,
|
|
hm ? top.hmunstable,
|
|
}:
|
|
let
|
|
pkgs = nixpkgs.${system};
|
|
in
|
|
top.darwin.lib.darwinSystem {
|
|
inherit pkgs system;
|
|
specialArgs = {
|
|
inherit metadata top;
|
|
inherit (top) self;
|
|
};
|
|
modules = [
|
|
{
|
|
home-manager = {
|
|
extraSpecialArgs = {
|
|
inherit top;
|
|
host = name;
|
|
};
|
|
};
|
|
}
|
|
hm.darwinModules.home-manager
|
|
# Local changes
|
|
../modules/nix-conf.nix
|
|
./baseline.nix
|
|
]
|
|
++ lib.optionals (builtins.pathExists ./hosts/${name}) [ ./hosts/${name} ];
|
|
};
|
|
in
|
|
(
|
|
lib.genAttrs
|
|
(builtins.attrNames (builtins.readDir ./hosts))
|
|
(
|
|
name:
|
|
mac { inherit name; }
|
|
)
|
|
)
|