This repository has no description
878 B
24 lines
1self: super: let
2 lib = super.lib;
3
4 # This callPackage will try to detect obsolete overrides.
5 callPackage = path: args: let
6 override = super.callPackage path args;
7 upstream = lib.optionalAttrs (override ? "name")
8 (super.${(builtins.parseDrvName override.name).name} or {});
9 in if upstream ? "name" &&
10 override ? "name" &&
11 builtins.compareVersions upstream.name override.name != -1
12 then
13 builtins.trace
14 "Upstream `${upstream.name}' gets overridden by `${override.name}'."
15 override
16 else override;
17
18 subdirsOf = path:
19 lib.mapAttrs (name: _: path + "/${name}")
20 (lib.filterAttrs (_: x: x == "directory") (builtins.readDir path));
21
22in lib.mapAttrs (_: lib.flip callPackage {})
23 (lib.filterAttrs (_: dir: lib.pathExists (dir + "/default.nix"))
24 (subdirsOf ./.))