stockholm/lass/5pkgs/default.nix
2022-08-02 13:56:14 +02:00

25 lines
878 B
Nix

self: super: let
lib = super.lib;
# This callPackage will try to detect obsolete overrides.
callPackage = path: args: let
override = super.callPackage path args;
upstream = lib.optionalAttrs (override ? "name")
(super.${(builtins.parseDrvName override.name).name} or {});
in if upstream ? "name" &&
override ? "name" &&
builtins.compareVersions upstream.name override.name != -1
then
builtins.trace
"Upstream `${upstream.name}' gets overridden by `${override.name}'."
override
else override;
subdirsOf = path:
lib.mapAttrs (name: _: path + "/${name}")
(lib.filterAttrs (_: x: x == "directory") (builtins.readDir path));
in lib.mapAttrs (_: lib.flip callPackage {})
(lib.filterAttrs (_: dir: lib.pathExists (dir + "/default.nix"))
(subdirsOf ./.))