Skip to content

Commit

Permalink
feat(pops/haumea): add inputsTransformer
Browse files Browse the repository at this point in the history
  • Loading branch information
GTrunSec committed Nov 22, 2023
1 parent 576a1ca commit ce1f931
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 31 deletions.
21 changes: 13 additions & 8 deletions examples/haumea.nix
Original file line number Diff line number Diff line change
Expand Up @@ -44,15 +44,20 @@ let
};

c =
((b.addLoadExtender { src = ../tests/haumeaData/__data; }).addLoadExtender (
extendPop pops.loadExtender (
self: super: {
load = {
loader = [ (matchers.nix loaders.scoped) ];
};
}
((b.addLoadExtender {
load.src = ../tests/haumeaData/__data;
load.inputsTransformer = [ (x: (x // { a = "1"; })) ];
}).addLoadExtender
(
extendPop pops.loadExtender (
self: super: {
load = {
loader = [ (matchers.nix loaders.scoped) ];
};
}
)
)
)).addExporters
).addExporters
[
(extendPop pops.exporter (
self: super: {
Expand Down
62 changes: 39 additions & 23 deletions src/haumea/pops.nix
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ let
src = ./.;
loader = haumea.lib.loaders.default;
inputs = { };
inputsTransformer = [ ];
transformer = [ ];
type = "default";
};
Expand Down Expand Up @@ -63,10 +64,15 @@ let
extendPop self (
self: super: {
load = {
inherit (load) loader transformer type;
inherit (load)
loader
transformer
type
inputsTransformer
;
src =
if l.isString load.src then l.unsafeDiscardStringContext load.src else load.src;
inputs = l.removeAttrs load.inputs [ "self" ];
inputs = lib.pipe load.inputs load.inputsTransformer;
};
}
)
Expand Down Expand Up @@ -133,25 +139,28 @@ let

# -- load --
load =
l.foldl
(
acc: extender:
let
ext' =
if (extender ? setInit) then
(extender.setInit self.initLoad).load
else
extender.load or { }
;
in
l.recursiveMerge' ([
acc
ext'
])
)
self.initLoad
self.loadExtenders;

let
cfg =
l.foldl
(
acc: extender:
let
ext' =
if (extender ? setInit) then
(extender.setInit self.initLoad).load
else
extender.load or { }
;
in
l.recursiveMerge' ([
acc
ext'
])
)
self.initLoad
self.loadExtenders;
in
(exporter.setLoad cfg).load;
# -- loadExtenders --
addLoadExtender =
defun
Expand Down Expand Up @@ -208,7 +217,7 @@ let
layouts =
(
let
cfg = (exporter.setLoad self.load).load;
cfg = self.load;
haumeaOutputs =
if
(l.elem cfg.type [
Expand All @@ -219,7 +228,14 @@ let
then
nixosModules { inherit cfg; }
else
{ default = haumea.lib.load (l.removeAttrs cfg [ "type" ]); }
{
default = haumea.lib.load (
l.removeAttrs cfg [
"type"
"inputsTransformer"
]
);
}
;
in
haumeaOutputs // (l.removeAttrs self.exports [ "default" ])
Expand Down
1 change: 1 addition & 0 deletions src/haumea/structAttrs.nix
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ let
haumeaLoad = {
src = either path string;
transformer = either function (list any);
inputsTransformer = either function (list any);
inputs = attrs any;
loader = either function (list any);
type =
Expand Down

0 comments on commit ce1f931

Please sign in to comment.