mirror of
https://github.com/smg1024/nix-darwin.git
synced 2026-05-22 20:32:59 +09:00
refactor: migrate nix-darwin config to a flake-parts dendritic layout
This commit is contained in:
parent
f80b0b0d4f
commit
09801ac429
84 changed files with 1029 additions and 687 deletions
70
modules/flake/darwin-configurations.nix
Normal file
70
modules/flake/darwin-configurations.nix
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
{
|
||||
config,
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
userName = config.repo.user.name;
|
||||
|
||||
mkDarwinConfiguration = hostName: hostConfig: let
|
||||
hostContext = {
|
||||
name = hostName;
|
||||
system = hostConfig.system;
|
||||
features = hostConfig.features;
|
||||
};
|
||||
|
||||
darwinModules = builtins.map (feature: config.flake.modules.darwin.${feature} or {}) hostConfig.features;
|
||||
homeModules = builtins.map (feature: config.repo.homeModules.${feature} or {}) hostConfig.features;
|
||||
in
|
||||
inputs.darwin.lib.darwinSystem {
|
||||
system = hostConfig.system;
|
||||
modules =
|
||||
[
|
||||
./darwin-context.nix
|
||||
{
|
||||
repo = {
|
||||
user = config.repo.user;
|
||||
host = hostContext;
|
||||
};
|
||||
}
|
||||
]
|
||||
++ darwinModules
|
||||
++ [
|
||||
inputs.nix-homebrew.darwinModules.nix-homebrew
|
||||
inputs.home-manager.darwinModules.home-manager
|
||||
{
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
backupFileExtension = "backup";
|
||||
sharedModules = [
|
||||
inputs.nvf.homeManagerModules.nvf
|
||||
inputs.sops-nix.homeManagerModules.sops
|
||||
./home-context.nix
|
||||
];
|
||||
users.${userName}.imports =
|
||||
[
|
||||
{
|
||||
repo = {
|
||||
user = {
|
||||
inherit
|
||||
(config.repo.user)
|
||||
name
|
||||
email
|
||||
homeDirectory
|
||||
homeStateVersion
|
||||
secretFile
|
||||
;
|
||||
};
|
||||
host = hostContext;
|
||||
};
|
||||
}
|
||||
]
|
||||
++ homeModules;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
in {
|
||||
flake.darwinConfigurations = lib.mapAttrs mkDarwinConfiguration config.repo.hosts;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue