mirror of
https://github.com/foo-dogsquared/nixos-config.git
synced 2025-01-30 22:57:55 +00:00
55 lines
1.6 KiB
Nix
55 lines
1.6 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 { };
|
|
}
|