1{
2 flakeInputs,
3 system,
4 lib,
5 tlib,
6 ...
7}:
8let
9 l = lib // builtins;
10 _pkgs = import flakeInputs.nixpkgs {
11 inherit system;
12 config.allowUnfree = true;
13 # config.allowBroken = true;
14 # config.permittedInsecurePackages = ["electron-25.9.0"];
15 };
16 _inputs = import ../_sources/generated.nix {
17 inherit (_pkgs)
18 fetchgit
19 fetchurl
20 fetchFromGitHub
21 dockerTools
22 ;
23 };
24 inputs = (l.mapAttrs (_: inp: inp // { __toString = s: toString s.src; }) _inputs) // flakeInputs;
25 overlays = l.flatten (
26 l.mapAttrsToList (
27 name: _:
28 if name != "disabled" then
29 let
30 o = import "${./overlays}/${name}";
31 in
32 if (l.functionArgs o) ? inputs then o { inherit inputs; } else o
33 else
34 [ ]
35 ) (l.readDir ./overlays)
36 );
37 pkgs = _pkgs.appendOverlays (overlays ++ [ flakeInputs.chaotic.overlays.cache-friendly ]);
38 terraPkgs = pkgs.lib.makeScope pkgs.newScope (
39 self:
40 l.genAttrs (l.map (l.removeSuffix ".nix") (l.attrNames (l.readDir ./pkgs))) (
41 name:
42 self.callPackage "${./pkgs}/${name}.nix" {
43 inherit inputs tlib;
44 }
45 )
46 );
47 pkgsToExport = pkgs.lib.getAttrs (import ./exported.nix) (pkgs // terraPkgs);
48in
49{
50 inherit pkgs inputs;
51 terra = terraPkgs;
52 exported = pkgsToExport;
53}