This repository has no description
860 B
27 lines
1{ ... }:
2{
3 perSystem =
4 { lib, pkgs, ... }:
5 {
6 packages =
7 let
8 # Wrapper that handles platform-incompatible packages by:
9 # 1. Catching eval errors during callPackage
10 # 2. Filtering based on meta.platforms
11 platformAwareCallPackage =
12 path: args:
13 let
14 result = builtins.tryEval (pkgs.callPackage path args);
15 pkg = result.value;
16 isSupported = result.success && lib.meta.availableOn pkgs.stdenv.hostPlatform pkg;
17 in
18 if isSupported then pkg else null;
19
20 allPackages = lib.packagesFromDirectoryRecursive {
21 callPackage = platformAwareCallPackage;
22 directory = ./.;
23 };
24 in
25 lib.filterAttrs (name: pkg: name != "flake-module" && pkg != null) allPackages;
26 };
27}