diff options
| author | seth <[email protected]> | 2023-07-19 19:55:34 -0400 |
|---|---|---|
| committer | seth <[email protected]> | 2023-07-19 19:56:16 -0400 |
| commit | 61ce6aca206f6ff5170a64ff597e078c2014de4f (patch) | |
| tree | 52fae87ff1f4f4b930349eea797da42e3677f5ab /flake.nix | |
| parent | 91e3ea44a21a010f0fb9f3853d97729c6c46285a (diff) | |
flake: only evaluate packages applicable to systems
Diffstat (limited to 'flake.nix')
| -rw-r--r-- | flake.nix | 38 |
1 files changed, 24 insertions, 14 deletions
@@ -50,31 +50,41 @@ hydraJobs = import ./modules/flake/hydraJobs.nix; }; - formatter = forEachSystem ({pkgs, ...}: pkgs.alejandra); + formatter = forEachSystem (p: p.pkgs.alejandra); checks = let ciSystems = [ "x86_64-linux" "aarch64-linux" ]; - - pkgs = (self.lib.ci ciSystems).mkCompatiblePkgs self.packages; in - nixpkgs.lib.genAttrs ciSystems (sys: pkgs.${sys}); + nixpkgs.lib.genAttrs ciSystems (sys: self.packages.${sys}); packages = forEachSystem ( - {pkgs, ...}: let - inherit (builtins) attrNames filter listToAttrs map readDir substring; - inherit (nixpkgs.lib) removeSuffix; + { + pkgs, + system, + }: let + inherit (builtins) attrNames elem filter listToAttrs map readDir substring; + inherit (nixpkgs.lib) filterAttrs removeSuffix; + + # filter disabled pkgs + avail = + filter (p: substring 0 1 p != "_" && p != "default.nix") + (attrNames (readDir ./pkgs)); - pkgNames = filter (p: substring 0 1 p != "_") (attrNames (readDir ./pkgs)); - pkgs' = map (removeSuffix ".nix") pkgNames; + names = map (removeSuffix ".nix") avail; - p = listToAttrs (map (name: { - inherit name; - value = pkgs.${name}; - }) - pkgs'); + p = let + derivs = listToAttrs (map (name: { + inherit name; + value = pkgs.${name}; + }) + names); + in + filterAttrs (_: v: + elem system (v.meta.platforms or [])) + derivs; in p // {default = p.treefetch;} ); |
