mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2024-09-22 01:18:03 +03:00
23 lines
551 B
Nix
23 lines
551 B
Nix
locks: rootSrc:
|
|
|
|
let
|
|
|
|
callFlake = sourceInfo: locks:
|
|
let
|
|
flake = import (sourceInfo + "/flake.nix");
|
|
|
|
inputs = builtins.mapAttrs (n: v:
|
|
if v.flake or true
|
|
then callFlake (fetchTree v.locked) v.inputs
|
|
else fetchTree v.locked) locks;
|
|
|
|
outputs = flake.outputs (inputs // { self = result; });
|
|
|
|
result = outputs // sourceInfo // { inherit inputs; inherit outputs; inherit sourceInfo; };
|
|
in
|
|
assert flake.edition == 201909;
|
|
|
|
result;
|
|
|
|
in callFlake rootSrc (builtins.fromJSON locks).inputs
|