Files
nix-config/overlays/default.nix
Jordan Holt 0c719603ec
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m24s
pkgs/vaultwarden: init at git-a2ad1dc
2025-09-02 00:39:12 +01:00

39 lines
1.2 KiB
Nix

final: prev:
/*
Generate an overlay from `pkgs` by handling the `callPackage` behaviour
ourselves, making exceptions for namespaced package sets. We cannot reuse
the definitions from `self.legacyPackages.${prev.system}`, as that would
evaluate nixpkgs twice here (prev.system does not exist then).
*/
let
lib = prev.lib;
pkgs = lib.packagesFromDirectoryRecursive {
callPackage = path: overrides: path;
directory = ../pkgs;
};
in
lib.mapAttrs (
name: value:
if lib.isAttrs value then
if lib.hasAttrByPath [ name "overrideScope" ] prev then
# Namespaced package sets created with `lib.makeScope pkgs.newScope`.
prev.${name}.overrideScope (
final': prev': lib.mapAttrs (name': value': final'.callPackage value' { }) value
)
else if lib.hasAttrByPath [ name "extend" ] prev then
# Namespaced package sets created with `lib.makeExtensible`.
prev.${name}.extend (
final': prev': lib.mapAttrs (name': value': final.callPackage value' { }) value
)
else
# Namespaced package sets in regular attrsets.
prev.${name} // value
else if name == "vaultwarden" then
final.callPackage value { rustPlatform = final.unstable.rustPlatform; }
else
final.callPackage value { }
) pkgs