Modular, context-aware and aspect-oriented dendritic Nix configurations. Discussions: https://oeiuwq.zulipchat.com/join/nqp26cd4kngon6mo3ncgnuap/
at main 27 lines 756 B view raw
1{ den, ... }: 2{ 3 den.default.includes = [ 4 # Example: parametric over many contexts: { home }, { host, user }, { fromUser, toHost } 5 den.provides.define-user 6 ]; 7 8 perSystem = 9 { 10 checkCond, 11 rockhopper, 12 adelie, 13 ... 14 }: 15 { 16 17 checks.alice-exists-on-rockhopper = checkCond "den.default.user.includes defines user on host" ( 18 rockhopper.config.users.users.alice.isNormalUser 19 ); 20 checks.alice-not-exists-on-adelie = checkCond "den.default.user.includes defines user on host" ( 21 !adelie.config.users.users ? alice 22 ); 23 checks.will-exists-on-adelie = checkCond "den.default.user.includes defines user on host" ( 24 adelie.config.users.users.will.isNormalUser 25 ); 26 }; 27}