From b8735803c4801258f31e971f3d97d67d19aa9ad0 Mon Sep 17 00:00:00 2001 From: sora-ext Date: Wed, 3 Jun 2026 17:35:15 +0200 Subject: [PATCH] Update flake.nix --- flake.nix | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/flake.nix b/flake.nix index 7f38eda..3d95352 100755 --- a/flake.nix +++ b/flake.nix @@ -38,24 +38,27 @@ }; outputs = inputs: - let gen = import ./generator.nix { inherit inputs; }; + let + lib = inputs.nixpkgs.lib; + gen = import ./generator.nix { inherit inputs; }; + systemsDir = ./systems; + systemNames = lib.attrNames (lib.filterAttrs + (name: type: type == "directory" && builtins.pathExists (systemsDir + "/${name}/cfg.nix")) + (builtins.readDir systemsDir)); + hostsByType = systemType: + lib.filter + (host: (import (systemsDir + "/${host}/cfg.nix")).syscfg.type == systemType) + systemNames; + generateHosts = systemType: + builtins.listToAttrs (map + (host: lib.nameValuePair host (gen.generate { inherit host; })) + (hostsByType systemType)); in { devShells = import ./shells { inherit inputs; }; - nixosConfigurations = { - valinor = gen.generate { host = "valinor"; }; - iriy = gen.generate { host = "iriy"; }; - efir = gen.generate { host = "efir"; }; - avalon = gen.generate { host = "avalon"; }; - ci = gen.generate { host = "ci"; }; - sandbox = gen.generate { host = "sandbox"; }; - gateway = gen.generate { host = "gateway"; }; - }; - darwinConfigurations = { asgard = gen.generate { host = "asgard"; }; }; - homeConfigurations = { - yomi = gen.generate { host = "example"; }; - example = gen.generate { host = "example"; }; - }; + nixosConfigurations = generateHosts "nixos"; + darwinConfigurations = generateHosts "macos"; + homeConfigurations = generateHosts "home"; }; # ===== Unsupported/NotImplemented ======