From 72067d23c5e363aca03f6391f15249eb47301175 Mon Sep 17 00:00:00 2001 From: Haonan Chen Date: Wed, 31 Dec 2025 20:21:26 +0800 Subject: [PATCH] flake.packages: allow to build separate archive --- flake/packages.nix | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/flake/packages.nix b/flake/packages.nix index 37d3aa7a..b40f696f 100644 --- a/flake/packages.nix +++ b/flake/packages.nix @@ -44,14 +44,17 @@ tokenPath = inputs.self.nixosConfigurations.pc.config.nixos.system.sops.secrets."acme/token".path; octodns = pkgs.octodns.withProviders (_: with pkgs.octodns-providers; [ cloudflare ]); }; - archive = pkgs.writeText "archive" (builtins.concatStringsSep "\n" (builtins.concatLists - [ - (inputs.nixpkgs.lib.mapAttrsToList - (_: v: (v.extendModules { modules = [{ config.system.includeBuildDependencies = true; }]; }) - .config.system.build.toplevel) - inputs.self.outputs.nixosConfigurations) - [ src ] - (builtins.attrValues inputs) - ])); + archive = + let + systemWithBuildDeps = system: + (system.extendModules { modules = [{ config.system.includeBuildDependencies = true; }]; }) + .config.system.build.toplevel; + systems = inputs.nixpkgs.lib.mapAttrs (_: v: systemWithBuildDeps v) inputs.self.outputs.nixosConfigurations; + inputListFile = pkgs.writeText "input-list" + (builtins.concatStringsSep "\n" (builtins.attrValues inputs)); + archive = pkgs.writeText "archive" (builtins.concatStringsSep "\n" + ((builtins.attrValues systems) ++ [ src inputListFile ])); + in + archive // { passthru = archive.passthru // systems // { inherit src; inputs = inputListFile; }; }; } // (builtins.mapAttrs (_: v: v.config.system.build.toplevel) inputs.self.outputs.nixosConfigurations)