nixos-config/subprojects/bahaghari/flake.nix

44 lines
1.4 KiB
Nix

# It has a design constraint of requiring no flake inputs as we're already
# using npins.
{
description =
"Specialized set of Nix modules for generating and applying themes.";
outputs = { ... }:
let
sources = import ./npins;
systems = [ "x86_64-linux" "aarch64-linux" ];
eachSystem = systems: f:
let
# Merge together the outputs for all systems.
op = attrs: system:
let
ret = f system;
op = attrs: key:
attrs // {
${key} = (attrs.${key} or { }) // { ${system} = ret.${key}; };
};
in builtins.foldl' op attrs (builtins.attrNames ret);
in builtins.foldl' op { } (systems
# add the current system if --impure is used
++ (if builtins ? currentSystem then
if builtins.elem builtins.currentSystem systems then
[ ]
else
[ builtins.currentSystem ]
else
[ ]));
in eachSystem systems (system:
let tests = branch: import ./tests { inherit branch system; };
in {
devShells.default = import ./shell.nix {
pkgs = import sources.nixos-stable { inherit system; };
};
checks = {
bahaghariLibStable = (tests "stable").libTestPkg;
bahaghariLibUnstable = (tests "unstable").libTestPkg;
};
}) // import ./default.nix { };
}