nix machine / user configurations
at terra 1.3 kB view raw
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}