mirror of
https://github.com/Swarsel/.dotfiles.git
synced 2025-12-06 09:07:21 +01:00
feat: add globals system
This commit is contained in:
parent
6cac368378
commit
2aa5e0095c
31 changed files with 833 additions and 528 deletions
|
|
@ -1,8 +1,4 @@
|
|||
{ self, lib, systems, inputs, outputs, ... }:
|
||||
let
|
||||
linuxUser = "swarsel";
|
||||
macUser = "leon.schwarzaeugl";
|
||||
in
|
||||
{ self, lib, systems, inputs, ... }:
|
||||
{
|
||||
|
||||
mkIfElseList = p: yes: no: lib.mkMerge [
|
||||
|
|
@ -47,88 +43,6 @@ in
|
|||
|
||||
forEachSystem = f: lib.genAttrs (import systems) (system: f lib.swarselsystems.pkgsFor.${system});
|
||||
|
||||
mkFullHost = host: type: {
|
||||
${host} =
|
||||
let
|
||||
systemFunc = if (type == "nixos") then lib.nixosSystem else inputs.nix-darwin.lib.darwinSystem;
|
||||
in
|
||||
systemFunc {
|
||||
specialArgs = { inherit inputs outputs lib self; };
|
||||
modules = [
|
||||
{
|
||||
node.name = host;
|
||||
node.secretsDir = ../hosts/${type}/${host}/secrets;
|
||||
}
|
||||
# put inports here that are for all hosts
|
||||
inputs.disko.nixosModules.disko
|
||||
inputs.sops-nix.nixosModules.sops
|
||||
inputs.impermanence.nixosModules.impermanence
|
||||
inputs.lanzaboote.nixosModules.lanzaboote
|
||||
inputs.fw-fanctrl.nixosModules.default
|
||||
"${self}/hosts/${type}/${host}"
|
||||
{
|
||||
_module.args.primaryUser = linuxUser;
|
||||
}
|
||||
] ++
|
||||
(if (host == "iso") then [
|
||||
inputs.nix-topology.nixosModules.default
|
||||
] else
|
||||
([
|
||||
# put nixos imports here that are for all servers and normal hosts
|
||||
inputs.nix-topology.nixosModules.default
|
||||
"${self}/modules/${type}/common"
|
||||
inputs.stylix.nixosModules.stylix
|
||||
inputs.nswitch-rcm-nix.nixosModules.nswitch-rcm
|
||||
] ++ (if (type == "nixos") then [
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
"${self}/profiles/nixos"
|
||||
"${self}/modules/nixos/server"
|
||||
"${self}/modules/nixos/optional"
|
||||
{
|
||||
home-manager.users."${linuxUser}".imports = [
|
||||
# put home-manager imports here that are for all normal hosts
|
||||
"${self}/modules/home/common"
|
||||
"${self}/modules/home/server"
|
||||
"${self}/modules/home/optional"
|
||||
"${self}/profiles/home"
|
||||
];
|
||||
}
|
||||
] else [
|
||||
# put nixos imports here that are for darwin hosts
|
||||
"${self}/modules/darwin/nixos/common"
|
||||
"${self}/profiles/darwin"
|
||||
inputs.home-manager.darwinModules.home-manager
|
||||
{
|
||||
home-manager.users."${macUser}".imports = [
|
||||
# put home-manager imports here that are for darwin hosts
|
||||
"${self}/modules/darwin/home"
|
||||
"${self}/modules/home/server"
|
||||
"${self}/modules/home/optional"
|
||||
"${self}/profiles/home"
|
||||
];
|
||||
}
|
||||
])
|
||||
));
|
||||
};
|
||||
};
|
||||
|
||||
mkHalfHost = host: type: pkgs: {
|
||||
${host} =
|
||||
let
|
||||
systemFunc = if (type == "home") then inputs.home-manager.lib.homeManagerConfiguration else inputs.nix-on-droid.lib.nixOnDroidConfiguration;
|
||||
in
|
||||
systemFunc
|
||||
{
|
||||
inherit pkgs;
|
||||
extraSpecialArgs = { inherit inputs outputs lib self; };
|
||||
modules = [ "${self}/hosts/${type}/${host}" ];
|
||||
};
|
||||
};
|
||||
|
||||
mkFullHostConfigs = hosts: type: lib.foldl (acc: set: acc // set) { } (lib.map (host: lib.swarselsystems.mkFullHost host type) hosts);
|
||||
|
||||
mkHalfHostConfigs = hosts: type: pkgs: lib.foldl (acc: set: acc // set) { } (lib.map (host: lib.swarselsystems.mkHalfHost host type pkgs) hosts);
|
||||
|
||||
readHosts = type: lib.attrNames (builtins.readDir "${self}/hosts/${type}");
|
||||
readNix = type: lib.filter (name: name != "default.nix") (lib.attrNames (builtins.readDir "${self}/${type}"));
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue