108 lines
2.2 KiB
Nix
108 lines
2.2 KiB
Nix
{
|
|
inputs,
|
|
self,
|
|
withSystem,
|
|
...
|
|
}: let
|
|
mkNixos = {
|
|
system ? "x86_64-linux",
|
|
nixpkgs ? inputs.nixpkgs,
|
|
config ? {},
|
|
overlays ? [],
|
|
modules ? [],
|
|
}:
|
|
withSystem system (
|
|
{
|
|
inputs',
|
|
lib,
|
|
pkgs,
|
|
system,
|
|
...
|
|
}: let
|
|
customPkgs = import nixpkgs (
|
|
lib.recursiveUpdate {
|
|
inherit system;
|
|
overlays = (builtins.attrValues self.overlays) ++ overlays;
|
|
config.allowUnfree = true;
|
|
} {inherit config;}
|
|
);
|
|
in
|
|
nixpkgs.lib.nixosSystem {
|
|
inherit system;
|
|
specialArgs = {
|
|
inherit inputs inputs' lib;
|
|
pkgs =
|
|
if (nixpkgs != inputs.nixpkgs || config != {} || overlays != [])
|
|
then customPkgs
|
|
else pkgs;
|
|
};
|
|
modules = [../nixos] ++ modules;
|
|
}
|
|
);
|
|
in {
|
|
flake.nixosConfigurations = let
|
|
defaultModules = [
|
|
../modules
|
|
inputs.agenix.nixosModules.default
|
|
{
|
|
environment.systemPackages = [
|
|
inputs.agenix.packages.x86_64-linux.default
|
|
];
|
|
}
|
|
];
|
|
|
|
fullNixOSModules =
|
|
defaultModules
|
|
++ [
|
|
{
|
|
home-manager.users.michael = import ../user/environments/nixos/home.nix;
|
|
}
|
|
];
|
|
in {
|
|
kitchen = mkNixos {
|
|
modules =
|
|
fullNixOSModules
|
|
++ [
|
|
../modules/common.nix
|
|
../modules/containers.nix
|
|
|
|
../machines/kitchen/configuration.nix
|
|
];
|
|
};
|
|
|
|
thinkcentre = mkNixos {
|
|
modules =
|
|
fullNixOSModules
|
|
++ [
|
|
../modules/common.nix
|
|
../modules/containers.nix
|
|
|
|
../machines/thinkcentre/configuration.nix
|
|
];
|
|
};
|
|
|
|
terra = mkNixos {
|
|
modules =
|
|
fullNixOSModules
|
|
++ [
|
|
../modules/common.nix
|
|
../modules/containers.nix
|
|
|
|
../machines/terra/configuration.nix
|
|
];
|
|
};
|
|
|
|
oracle = mkNixos {
|
|
modules =
|
|
defaultModules
|
|
++ [
|
|
{
|
|
home-manager.users.michael = import ../user/environments/nixos-server/home.nix;
|
|
}
|
|
|
|
../machines/oracle/configuration.nix
|
|
];
|
|
};
|
|
};
|
|
}
|