diff options
Diffstat (limited to 'lib.nix')
| -rw-r--r-- | lib.nix | 52 |
1 files changed, 52 insertions, 0 deletions
@@ -0,0 +1,52 @@ +{ + lib ? import <nixpkgs/lib>, +}: + +lib.fix (self: { + evalCores = + { + modules, + specialArgs, + }: + + lib.evalModules { + modules = [ ./modules ] ++ modules; + inherit specialArgs; + class = "core"; + }; + + mkCores = + { + module, + specialArgs, + sources, + }: + + self.outputsWithExtend ( + self.evalCores { + modules = [ + module + + ( + { lib, ... }: + + { + sources = lib.mkDefault sources; + } + ) + ]; + + inherit specialArgs; + } + ); + + outputsWithExtend = + cores: + + assert cores.class == "core"; + + cores.config.outputs + // { + extendCores = module: self.outputsWithExtend (cores.extendModules { modules = [ module ]; }); + }; +}) |
