flake/overlays/lib.nix
Max 079f83ba45 Major Upgrade/Refactor
- KoboldAI is no longer upstream maintained, so is now deprecated in
  nixified.ai

- InvokeAI: v2.3.1.post2 -> v3.3.0post3
- textgen: init at v1.7
- treewide: update flake inputs including nixpkgs
- treewide: add a bunch of new dependencies and upgrade old ones
2023-10-19 22:13:37 +01:00

40 lines
1.3 KiB
Nix

lib: _: {
overlays = {
runOverlay = do: final: prev: do {
inherit final prev;
util = {
callPackageOrTuple = input:
if lib.isList input then
assert lib.length input == 2; let
pkg = lib.head input;
args = lib.last input;
in final.callPackage pkg args
else
final.callPackage input { };
};
};
callManyPackages = packages: lib.overlays.runOverlay ({ util, ... }:
let
packages' = lib.listToAttrs (map (x: lib.nameValuePair (baseNameOf x) x) packages);
in
lib.mapAttrs (lib.const util.callPackageOrTuple) packages'
);
applyOverlays = packageSet: overlays: let
combinedOverlay = lib.composeManyExtensions overlays;
in
# regular extensible package set
if packageSet ? extend then
packageSet.extend combinedOverlay
# makeScope-style package set, this case needs to be handled before makeScopeWithSplicing
else if packageSet ? overrideScope' then
packageSet.overrideScope' combinedOverlay
# makeScopeWithSplicing-style package set
else if packageSet ? overrideScope then
packageSet.overrideScope combinedOverlay
else
throw "don't know how to extend the given package set";
};
}