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 lib,
3 config,
4 ...
5}:
6let
7 aspects = import ./aspects.nix lib config.flake.aspects;
8 types = import ./types.nix lib;
9in
10{
11 options.flake.aspects = lib.mkOption {
12 default = { };
13 description = ''
14 Attribute set of `<aspect>.<class>` modules.
15
16 Convenience transposition of `flake.modules.<class>.<aspect>`.
17 '';
18 type = types.aspectsType;
19 };
20 config.flake.aspects =
21 { config, ... }:
22 {
23 _module.args.aspects = config;
24 };
25 config.flake.modules = aspects.transposed;
26}