diff --git a/hosts/gerg-desktop/main.nix b/hosts/gerg-desktop/main.nix index aa34b81..5db6404 100644 --- a/hosts/gerg-desktop/main.nix +++ b/hosts/gerg-desktop/main.nix @@ -200,4 +200,6 @@ }; system.stateVersion = "24.11"; + networking.hostName = "gerg-desktop"; + nixpkgs.hostPlatform = "x86_64-linux"; } diff --git a/hosts/iso/main.nix b/hosts/iso/main.nix index 46b3825..e59f973 100644 --- a/hosts/iso/main.nix +++ b/hosts/iso/main.nix @@ -39,4 +39,8 @@ edition = lib.mkForce "gerg-minimal"; isoName = lib.mkForce "NixOS"; }; + + system.stateVersion = "24.11"; + networking.hostName = "gerg-iso"; + nixpkgs.hostPlatform = "x86_64-linux"; } diff --git a/hosts/media-laptop/main.nix b/hosts/media-laptop/main.nix index 040baba..bed8c53 100644 --- a/hosts/media-laptop/main.nix +++ b/hosts/media-laptop/main.nix @@ -76,6 +76,8 @@ ]; system.stateVersion = "24.11"; + networking.hostName = "media-laptop"; + nixpkgs.hostPlatform = "x86_64-linux"; swapDevices = [ { diff --git a/hosts/minecraft/main.nix b/hosts/minecraft/main.nix index ef25888..90cf7f3 100644 --- a/hosts/minecraft/main.nix +++ b/hosts/minecraft/main.nix @@ -94,6 +94,7 @@ programs.command-not-found.enable = false; programs.nano.enable = false; ### - nixpkgs.hostPlatform = "x86_64-linux"; + system.stateVersion = "24.11"; + nixpkgs.hostPlatform = "x86_64-linux"; } diff --git a/lib/default.nix b/lib/default.nix index 0c9de1a..ca757c2 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -167,39 +167,45 @@ rec { (lib.foldAttrs lib.mergeAttrs { }) ]; - mkHosts = - system: - lib.flip lib.genAttrs ( - hostName: - # Whats lib.nixosSystem? never heard of her - lib.evalModules { + mkHosts = wrench [ + builtins.readDir + (lib.filterAttrs (_: v: v == "directory")) + builtins.attrNames + (map (x: { + name = x; + value = lib.evalModules { specialArgs.modulesPath = "${unstable}/nixos/modules"; - modules = builtins.concatLists [ (builtins.attrValues self.nixosModules) - (map addSchizophreniaToModule (listNixFilesRecursive "${self}/hosts/${hostName}")) + (map addSchizophreniaToModule (listNixFilesRecursive "${self}/hosts/${x}")) (import "${unstable}/nixos/modules/module-list.nix") - (lib.singleton { - networking = { - inherit hostName; - }; - nixpkgs.hostPlatform = system; - }) - (lib.optionals (self.diskoConfigurations ? "disko-${hostName}") [ - self.diskoConfigurations."disko-${hostName}" + (lib.optionals (self.diskoConfigurations ? "disko-${x}") [ + self.diskoConfigurations."disko-${x}" disko.nixosModules.default ]) ]; - } - ); - mkDisko = wrench [ - (map (name: { - name = "disko-${name}"; - value.disko.devices = import "${self}/disko/${name}.nix" lib; + }; })) builtins.listToAttrs ]; + mkDisko = + path: + lib.pipe path [ + builtins.readDir + (lib.filterAttrs (n: v: v == "regular" && lib.hasSuffix ".nix" n)) + builtins.attrNames + (map (x: { + name = lib.pipe x [ + (lib.removeSuffix path) + (lib.removeSuffix ".nix") + (x: "disko-${x}") + ]; + value.disko.devices = import "${path}/${x}" lib; + })) + builtins.listToAttrs + ]; + /* / -> packages named by directory //call.nix -> callPackage override imported via import pkgs diff --git a/outputs.nix b/outputs.nix index 5cb4a6c..2c868d2 100644 --- a/outputs.nix +++ b/outputs.nix @@ -4,20 +4,11 @@ let in lib.gerg-utils (s: unstable.legacyPackages.${s}) { inherit lib; - nixosConfigurations = lib.mkHosts "x86_64-linux" [ - "gerg-desktop" - "media-laptop" - "iso" - "minecraft" - ]; + nixosConfigurations = lib.mkHosts "${self}/hosts"; nixosModules = lib.mkModules "${self}/modules"; - diskoConfigurations = lib.mkDisko [ - "gerg-desktop" - "media-laptop" - "minecraft" - ]; + diskoConfigurations = lib.mkDisko "${self}/disko"; formatter = pkgs: inputs.self.packages.${pkgs.stdenv.system}.lint;