From: Scott Worley Date: Thu, 22 Jun 2023 21:24:51 +0000 (-0700) Subject: 23.05: New way to get the list of tier1 systems X-Git-Url: http://git.scottworley.com/nixos-qemu-vm-isolation/commitdiff_plain/efbc4a2f086357b034112908fb29f8d3bfe4875b?ds=inline;hp=a91e7da80da9d5987b609a20821a08ac15805065 23.05: New way to get the list of tier1 systems --- diff --git a/flake.lock b/flake.lock index 0faa452..0ec3471 100644 --- a/flake.lock +++ b/flake.lock @@ -2,11 +2,11 @@ "nodes": { "nixpkgs": { "locked": { - "lastModified": 1639876010, - "narHash": "sha256-naGsoUfsY92NaIGiFI8XFXBnesw8BQGe694xcfaLMDI=", + "lastModified": 1686960236, + "narHash": "sha256-AYCC9rXNLpUWzD9hm+askOfpliLEC9kwAo7ITJc4HIw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "395879c28386e1abf20c7ecacd45880759548391", + "rev": "04af42f3b31dba0ef742d254456dc4c14eedac86", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 757331d..ddce3f9 100644 --- a/flake.nix +++ b/flake.nix @@ -4,7 +4,7 @@ let inherit (nixpkgs.lib) genAttrs; - systems = nixpkgs.lib.systems.supported.tier1; + systems = import ./lib/tier1.nix nixpkgs; forAllSystems = genAttrs systems; diff --git a/lib/tier1.nix b/lib/tier1.nix new file mode 100644 index 0000000..beb5e35 --- /dev/null +++ b/lib/tier1.nix @@ -0,0 +1,28 @@ +# Since 168b926435628cb06c4a8cb0f3e6f69f141529f1, we do shenanigans to get the tier1 list. :( + +nixpkgs: + +let + inherit (nixpkgs) lib; + inherit (lib) elemAt foldl' isList splitString; + inherit (builtins) readFile; + + lines = splitString "\n"; + + between = start: stop: list: + let + step = state: x: + if isNull state && x == start then + [ ] + else if isList state then + if x == stop then { result = state; } else state ++ [ x ] + else + state; + in (foldl' step null list).result; + + strip-quotes = x: elemAt (builtins.match " \"(.*)\"" x) 0; + + systems-file = "${nixpkgs}/lib/systems/flake-systems.nix"; + +in map strip-quotes +(between " # Tier 1" " # Tier 2" (lines (readFile systems-file)))