blob: f090932e4ed748c16b403d4ba1699e6ef6fe6cee (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
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" &&
lib.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 ./.))
|