This repository has no description
1.1 kB
36 lines
1{ ... }:
2{
3 perSystem =
4 {
5 lib,
6 pkgs,
7 inputs',
8 ...
9 }:
10 {
11 packages =
12 let
13 # pkgs.callPackage plus llm-agents, for packages that patch one of
14 # its agents (pkgs.orca is the GNOME screen reader, not this one).
15 callPackage = pkgs.newScope { llm-agents = inputs'.llm-agents.packages; };
16
17 # Wrapper that handles platform-incompatible packages by:
18 # 1. Catching eval errors during callPackage
19 # 2. Filtering based on meta.platforms
20 platformAwareCallPackage =
21 path: args:
22 let
23 result = builtins.tryEval (callPackage path args);
24 pkg = result.value;
25 isSupported = result.success && lib.meta.availableOn pkgs.stdenv.hostPlatform pkg;
26 in
27 if isSupported then pkg else null;
28
29 allPackages = lib.packagesFromDirectoryRecursive {
30 callPackage = platformAwareCallPackage;
31 directory = ./.;
32 };
33 in
34 lib.filterAttrs (name: pkg: name != "flake-module" && pkg != null) allPackages;
35 };
36}