44 lines
1,007 B
Nix
44 lines
1,007 B
Nix
{ self, config, inputs, lib, ... }:
|
|
let
|
|
defaultModules = [
|
|
{
|
|
# Let 'nixos-version --json' know about the Git revision
|
|
system.configurationRevision = self.rev or "dirty";
|
|
}
|
|
{
|
|
nixpkgs.overlays = (lib.attrValues self.overlays) ++ [
|
|
inputs.nur.overlay
|
|
];
|
|
}
|
|
# Include generic settings
|
|
"${self}/modules/nixos"
|
|
# Import common modules
|
|
"${self}/modules/common"
|
|
];
|
|
|
|
buildHost = name: system: lib.nixosSystem {
|
|
inherit system;
|
|
modules = defaultModules ++ [
|
|
"${self}/hosts/nixos/${name}"
|
|
];
|
|
specialArgs = {
|
|
# Use my extended lib in NixOS configuration
|
|
inherit (self) lib;
|
|
# Inject inputs to use them in global registry
|
|
inherit inputs;
|
|
# For consumption by common modules
|
|
type = "nixos";
|
|
};
|
|
};
|
|
in
|
|
{
|
|
config = {
|
|
hosts.nixos = {
|
|
aramis = "x86_64-linux";
|
|
porthos = "x86_64-linux";
|
|
};
|
|
|
|
flake.nixosConfigurations = lib.mapAttrs buildHost config.hosts.nixos;
|
|
};
|
|
}
|