fixes & cleanup

This commit is contained in:
soraefir
2026-06-20 10:19:18 +02:00
parent b55afcfdf6
commit 9169630b43
10 changed files with 204 additions and 103 deletions
+98 -63
View File
@@ -1,70 +1,105 @@
{ inputs, ... }: {
generate = { host }:
{
inputs,
mkPkgs,
supportedSystems,
...
}:
{
generate =
{ host }:
let
syscfg = import ./systems/${host}/cfg.nix;
nameValuePair = name: value: { inherit name value; };
in ({
"nixos" = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
./modules/shared/syscfg
./modules/shared/sops
./modules/nixos
syscfg
./systems/${host}
inputs.sops-nix.nixosModules.sops
inputs.home-manager.nixosModules.home-manager
systemType = syscfg.syscfg.type or "nixos";
defaultSystem =
{
nixos = "x86_64-linux";
macos = "x86_64-darwin";
home = "x86_64-linux";
}
.${systemType} or (throw "Unsupported system type: ${systemType}");
system = syscfg.syscfg.system or defaultSystem;
checkedSystem =
if builtins.elem system supportedSystems then
system
else
throw "Unsupported system '${system}' for host '${host}'";
pkgs = mkPkgs checkedSystem;
in
(
{
"nixos" = inputs.nixpkgs.lib.nixosSystem {
system = checkedSystem;
specialArgs = { inherit inputs; };
modules = [
./modules/shared/syscfg
./modules/shared/sops
./modules/nixos
syscfg
./systems/${host}
inputs.sops-nix.nixosModules.sops
inputs.home-manager.nixosModules.home-manager
inputs.nixos-wsl.nixosModules.wsl
inputs.vscode-server.nixosModules.default
inputs.nixos-wsl.nixosModules.wsl
inputs.vscode-server.nixosModules.default
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = { inherit inputs; };
home-manager.users = builtins.listToAttrs (map (userConfig:
nameValuePair userConfig.username {
imports = [
./modules/shared/syscfg
./modules/shared/colors
./modules/home
syscfg
{ usercfg = userConfig; }
inputs.nix-colors.homeManagerModule
inputs.sops-nix.homeManagerModules.sops
];
}) syscfg.syscfg.users);
}
];
};
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = { inherit inputs; };
home-manager.users = builtins.listToAttrs (
map (
userConfig:
nameValuePair userConfig.username {
imports = [
./modules/shared/syscfg
./modules/shared/colors
./modules/home
syscfg
{ usercfg = userConfig; }
inputs.nix-colors.homeManagerModule
inputs.sops-nix.homeManagerModules.sops
];
}
) (syscfg.syscfg.users or [ ])
);
}
];
};
"macos" = inputs.darwin.lib.darwinSystem {
system = "x86_64-darwin";
modules = [
./modules/shared/syscfg
./modules/shared/sops
syscfg
./systems/${host}
inputs.sops-nix.nixosModules.sops
inputs.home-manager.darwinModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = { inherit inputs; };
home-manager.users = builtins.listToAttrs (map (userConfig:
nameValuePair userConfig.username {
imports = [
inputs.nix-colors.homeManagerModule
inputs.sops-nix.homeManagerModules.sops
];
}) syscfg.syscfg.users);
}
];
};
"home" = inputs.home-manager.lib.homeManagerConfiguration {
modules = [ ./modules/home ];
};
_ = throw "Unsupported system";
}.${syscfg.syscfg.type});
"macos" = inputs.darwin.lib.darwinSystem {
system = checkedSystem;
modules = [
./modules/shared/syscfg
./modules/shared/sops
syscfg
./systems/${host}
inputs.sops-nix.darwinModules.sops
inputs.home-manager.darwinModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = { inherit inputs; };
home-manager.users = builtins.listToAttrs (
map (
userConfig:
nameValuePair userConfig.username {
imports = [
inputs.nix-colors.homeManagerModule
inputs.sops-nix.homeManagerModules.sops
];
}
) (syscfg.syscfg.users or [ ])
);
}
];
};
"home" = inputs.home-manager.lib.homeManagerConfiguration {
inherit pkgs;
modules = [ ./modules/home ];
};
_ = throw "Unsupported system";
}
.${systemType}
);
}