mirror of
https://codeberg.org/leana8959/.files.git
synced 2025-12-06 14:49:14 +00:00
nix: refactored combinator
This commit is contained in:
parent
2ceff90f81
commit
c25bfbed5f
3 changed files with 167 additions and 195 deletions
|
|
@ -1,103 +1,70 @@
|
|||
{ inputs, withSystem, ... }:
|
||||
|
||||
let
|
||||
mkNixOS =
|
||||
nixosModulesOf: homeModulesOf:
|
||||
{
|
||||
hostname,
|
||||
system,
|
||||
extraNixOSConfig ? { },
|
||||
extraHomeConfig ? { },
|
||||
...
|
||||
}:
|
||||
withSystem system (
|
||||
{ pkgs, lib, ... }:
|
||||
let
|
||||
infoArgs = {
|
||||
inherit hostname system;
|
||||
};
|
||||
specialArgs = {
|
||||
inherit pkgs;
|
||||
inherit hostname;
|
||||
};
|
||||
in
|
||||
inputs.nixpkgs.lib.nixosSystem {
|
||||
inherit specialArgs;
|
||||
modules = nixosModulesOf infoArgs ++ [
|
||||
extraNixOSConfig
|
||||
(lib.attrsets.optionalAttrs (extraHomeConfig != null) {
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
extraSpecialArgs = specialArgs;
|
||||
users.leana.imports = homeModulesOf infoArgs ++ [ extraHomeConfig ];
|
||||
};
|
||||
})
|
||||
];
|
||||
}
|
||||
);
|
||||
|
||||
mkDarwin =
|
||||
darwinModulesOf: homeModulesOf:
|
||||
{
|
||||
hostname,
|
||||
system,
|
||||
extraDarwinConfig ? { },
|
||||
extraHomeConfig ? { },
|
||||
...
|
||||
}:
|
||||
withSystem system (
|
||||
{ pkgs, lib, ... }:
|
||||
let
|
||||
infoArgs = {
|
||||
inherit hostname system;
|
||||
};
|
||||
specialArgs = {
|
||||
inherit pkgs;
|
||||
inherit hostname;
|
||||
};
|
||||
in
|
||||
inputs.nix-darwin.lib.darwinSystem {
|
||||
inherit specialArgs;
|
||||
modules = darwinModulesOf infoArgs ++ [
|
||||
extraDarwinConfig
|
||||
(lib.attrsets.optionalAttrs (extraHomeConfig != null) {
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
extraSpecialArgs = specialArgs;
|
||||
users.leana.imports = homeModulesOf infoArgs ++ [ extraHomeConfig ];
|
||||
};
|
||||
})
|
||||
];
|
||||
}
|
||||
);
|
||||
|
||||
mkHomeManager =
|
||||
homeModulesOf:
|
||||
{
|
||||
hostname,
|
||||
system,
|
||||
extraHomeConfig ? { },
|
||||
...
|
||||
}:
|
||||
mkSpecialArgs =
|
||||
{ hostname, system, ... }:
|
||||
withSystem system (
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
infoArgs = {
|
||||
inherit hostname system;
|
||||
};
|
||||
specialArgs = {
|
||||
inherit pkgs;
|
||||
inherit hostname;
|
||||
};
|
||||
in
|
||||
inputs.home-manager.lib.homeManagerConfiguration {
|
||||
inherit (specialArgs) pkgs;
|
||||
extraSpecialArgs = specialArgs;
|
||||
modules = homeModulesOf infoArgs ++ [ extraHomeConfig ];
|
||||
{
|
||||
inherit pkgs hostname;
|
||||
}
|
||||
);
|
||||
|
||||
mkNixOS =
|
||||
sharedModules:
|
||||
{
|
||||
hostname,
|
||||
system,
|
||||
modules ? [ ],
|
||||
}:
|
||||
let
|
||||
info = {
|
||||
inherit hostname system;
|
||||
};
|
||||
specialArgs = mkSpecialArgs info;
|
||||
in
|
||||
inputs.nixpkgs.lib.nixosSystem {
|
||||
inherit specialArgs;
|
||||
modules = sharedModules info ++ modules;
|
||||
};
|
||||
|
||||
mkDarwin =
|
||||
sharedModules:
|
||||
{
|
||||
hostname,
|
||||
system,
|
||||
modules ? [ ],
|
||||
}:
|
||||
let
|
||||
info = {
|
||||
inherit hostname system;
|
||||
};
|
||||
specialArgs = mkSpecialArgs info;
|
||||
in
|
||||
inputs.nix-darwin.lib.darwinSystem {
|
||||
inherit specialArgs;
|
||||
modules = sharedModules info ++ modules;
|
||||
};
|
||||
|
||||
mkHomeManager =
|
||||
sharedModules:
|
||||
{
|
||||
hostname,
|
||||
system,
|
||||
modules ? [ ],
|
||||
}:
|
||||
let
|
||||
info = {
|
||||
inherit hostname system;
|
||||
};
|
||||
specialArgs = mkSpecialArgs info;
|
||||
in
|
||||
inputs.home-manager.lib.homeManagerConfiguration {
|
||||
inherit (specialArgs) pkgs;
|
||||
extraSpecialArgs = specialArgs;
|
||||
modules = sharedModules info ++ modules;
|
||||
};
|
||||
|
||||
many = func: builtins.mapAttrs (hostname: cfgs: func (cfgs // { inherit hostname; }));
|
||||
in
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue