diff --git a/nix/buildAllNixosConfigurations.nix b/nix/buildAllNixosConfigurations.nix new file mode 100644 index 0000000..f6d891a --- /dev/null +++ b/nix/buildAllNixosConfigurations.nix @@ -0,0 +1,30 @@ +# buid all system locally is part of `nix flake check` with this flake parrt. +# todo make this an application : `nix run .#buildAllNixosConfigurations` +{ inputs, self, ... }: +{ + perSystem = + { + pkgs, + system, + lib, + ... + }: + with lib; + { + checks = + let + all = attrNames self.nixosConfigurations; + linkFor = sys: "ln -s ${self.nixosConfigurations.${sys}.config.system.build.toplevel} $out/${sys}"; + links = filt: builtins.concatStringsSep "\n" (map linkFor (filter (name: filt name) all)); + toplevels = + filt: + pkgs.runCommandLocal "toplevels" { } '' + mkdir $out + ${links filt} + ''; + in + { + buildAllNixosConfigurations = toplevels (_: true); + }; + }; +}