labs/tidepool/src/exports/packages.nix

54 lines
1.2 KiB
Nix
Raw Normal View History

{
config,
lib,
}: let
2024-06-13 17:22:57 +00:00
lib' = config.lib;
in {
options = {
exports.packages = lib.options.create {
type = lib.types.attrs.of (lib'.types.raw);
default.value = {};
};
exported.packages = lib.options.create {
2024-06-14 11:47:54 +00:00
type = lib.types.attrs.of (lib.types.attrs.of lib.types.derivation);
default.value = {};
};
};
config = {
2024-06-14 11:47:54 +00:00
exported.packages = let
all = lib.attrs.generate lib'.systems.doubles.all (
system: let
all =
2024-06-14 11:47:54 +00:00
builtins.mapAttrs
(
name: package: let
result = lib'.packages.build package system system;
in
result
)
config.exports.packages;
2024-06-14 11:47:54 +00:00
available =
lib.attrs.filter
(name: package: builtins.elem system package.meta.platforms)
all;
packages =
builtins.mapAttrs
(name: package: package.package)
available;
2024-06-14 11:47:54 +00:00
in
packages
2024-06-14 11:47:54 +00:00
);
available =
lib.attrs.filter
(system: packages: builtins.length (builtins.attrNames packages) != 0)
all;
in
available;
};
}