27 lines
844 B
Nix
27 lines
844 B
Nix
rec {
|
|
dirfilter = type: path:
|
|
(let root = builtins.readDir path;
|
|
in builtins.filter (x: builtins.getAttr x root == type)
|
|
(builtins.attrNames root));
|
|
|
|
absolutify = path: ../../. + ("/" + path);
|
|
mkpatchlist = pkg:
|
|
map (patch: absolutify (builtins.concatStringsSep "/" [ pkg patch ]))
|
|
(dirfilter "regular" (absolutify pkg));
|
|
|
|
patch = super: patchdir:
|
|
super.overrideAttrs
|
|
(attrs: { patches = (attrs.patches or [ ]) ++ (mkpatchlist patchdir); });
|
|
|
|
patch-rename = super: pname: patchdir:
|
|
super.overrideAttrs (attrs: {
|
|
patches = (attrs.patches or [ ]) ++ (mkpatchlist patchdir);
|
|
inherit pname;
|
|
});
|
|
|
|
patch-rename-direct = super: renameWith: patchdir:
|
|
super.overrideAttrs (attrs: {
|
|
patches = (attrs.patches or [ ]) ++ (mkpatchlist patchdir);
|
|
name = renameWith attrs;
|
|
});
|
|
}
|