fake.modules transposition for aspect-oriented Dendritic Nix. with cross-aspect dependencies. Discussions: https://oeiuwq.zulipchat.com/join/nqp26cd4kngon6mo3ncgnuap/
dendrix.oeiuwq.com/Dendritic.html
dendritic
nix
aspect
oriented
1{
2 mkFlake,
3 evalMod,
4 lib,
5 ...
6}:
7{
8
9 flake.tests."test dependencies on aspects" =
10 let
11 flake = mkFlake {
12 flake.aspects =
13 { aspects, ... }:
14 {
15 aspectOne = {
16 description = "os config";
17 includes = with aspects; [ aspectTwo ];
18 classOne.bar = [ "os" ];
19 };
20
21 aspectTwo = {
22 description = "user config at os level";
23 classOne.bar = [ "user" ];
24 };
25 };
26 };
27 expr = lib.sort (a: b: a < b) (evalMod "classOne" flake.modules.classOne.aspectOne).bar;
28 expected = [
29 "os"
30 "user"
31 ];
32 in
33 {
34 inherit expr expected;
35 };
36
37}