forked from Fediversity/fediversity.eu
make template overrides chainable
This commit is contained in:
parent
c11da792d7
commit
9c2b543e47
15
lib.nix
15
lib.nix
|
@ -1,7 +1,20 @@
|
||||||
{ lib }:
|
{ lib }:
|
||||||
rec {
|
rec {
|
||||||
template = g: f: x:
|
template = g: f: x:
|
||||||
(g (f x)) // { override = o: g (lib.recursiveUpdate (f x) o); };
|
let
|
||||||
|
base = f x;
|
||||||
|
result = g base;
|
||||||
|
in
|
||||||
|
result // {
|
||||||
|
override = new:
|
||||||
|
let
|
||||||
|
base' = lib.recursiveUpdate base new;
|
||||||
|
result' = g base';
|
||||||
|
in
|
||||||
|
result' // {
|
||||||
|
override = new: (template g (x': base') x).override new;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Recursively replace occurrences of `from` with `to` within `string`
|
Recursively replace occurrences of `from` with `to` within `string`
|
||||||
|
|
Reference in a new issue