mirror of
https://github.com/SebastianWendel/srx-platform-nix.git
synced 2024-09-19 20:09:02 +02:00
41 lines
1.4 KiB
Nix
41 lines
1.4 KiB
Nix
|
{ self, inputs, config, ... }:
|
||
|
{
|
||
|
flake.hydraJobs = {
|
||
|
inherit (self) checks packages;
|
||
|
};
|
||
|
|
||
|
perSystem = { pkgs, self', system, ... }:
|
||
|
let
|
||
|
inherit (config) flake;
|
||
|
inherit (pkgs) lib linkFarm;
|
||
|
nixosDrvs = lib.mapAttrs (_: nixos: nixos.config.system.build.toplevel) flake.nixosConfigurations;
|
||
|
homeDrvs = lib.mapAttrs (_: home: home.activationPackage) flake.homeConfigurations;
|
||
|
hostDrvs = nixosDrvs // homeDrvs;
|
||
|
compatHosts = lib.filterAttrs (_: host: host.hostPlatform == system) flake.hosts;
|
||
|
compatHostDrvs = lib.mapAttrs (name: _: hostDrvs.${name}) compatHosts;
|
||
|
compatHostsFarm = linkFarm "hosts-${system}" (lib.mapAttrsToList (name: path: { inherit name path; }) compatHostDrvs);
|
||
|
packagesAdditional = { inherit (pkgs) nix-fast-build; };
|
||
|
packagesBlacklist = [ ];
|
||
|
packages = lib.mapAttrs' (name: lib.nameValuePair "package-${name}") (
|
||
|
lib.filterAttrs (name: _v: !(builtins.elem name packagesBlacklist)) self'.packages);
|
||
|
in
|
||
|
{
|
||
|
_module.args = {
|
||
|
pkgs = import inputs.nixpkgs {
|
||
|
inherit system;
|
||
|
overlays = [ self.overlays.default ];
|
||
|
config = {
|
||
|
allowUnfree = true;
|
||
|
allowAliases = true;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
packages = (
|
||
|
lib.optionalAttrs (compatHosts != { }) { default = compatHostsFarm; }
|
||
|
) // compatHostDrvs // packagesAdditional;
|
||
|
|
||
|
checks = packages;
|
||
|
};
|
||
|
}
|