summaryrefslogtreecommitdiff
path: root/lib.nix
diff options
context:
space:
mode:
authorSeth Flynn <[email protected]>2025-03-11 16:31:03 -0400
committerSeth Flynn <[email protected]>2025-03-11 17:57:46 -0400
commit336dc00a94e39337c64decd6d0f4f6e4a4d43187 (patch)
tree7e5cb2b56913e398afab4de495bed0401a16493f /lib.nix
initial commitHEADmain
Diffstat (limited to 'lib.nix')
-rw-r--r--lib.nix52
1 files changed, 52 insertions, 0 deletions
diff --git a/lib.nix b/lib.nix
new file mode 100644
index 0000000..e5a019c
--- /dev/null
+++ b/lib.nix
@@ -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 ]; });
+ };
+})