diff options
author | Timo Kaufmann <timokau@zoho.com> | 2018-07-16 22:45:07 +0200 |
---|---|---|
committer | Timo Kaufmann <timokau@zoho.com> | 2018-07-16 22:46:54 +0200 |
commit | 30585139410578e9cbf3091a3f930dcd22de1ebc (patch) | |
tree | 3ab1b20627547e85bb79414f6edd9eae5222a5c0 /pkgs/build-support/fetchpatch | |
parent | 8f9b985e60de16883b2e67eaf2924144d647f31e (diff) | |
download | nixpkgs-30585139410578e9cbf3091a3f930dcd22de1ebc.tar nixpkgs-30585139410578e9cbf3091a3f930dcd22de1ebc.tar.gz nixpkgs-30585139410578e9cbf3091a3f930dcd22de1ebc.tar.bz2 nixpkgs-30585139410578e9cbf3091a3f930dcd22de1ebc.tar.lz nixpkgs-30585139410578e9cbf3091a3f930dcd22de1ebc.tar.xz nixpkgs-30585139410578e9cbf3091a3f930dcd22de1ebc.tar.zst nixpkgs-30585139410578e9cbf3091a3f930dcd22de1ebc.zip |
fetchpatch: add option to revert a patch
Diffstat (limited to 'pkgs/build-support/fetchpatch')
-rw-r--r-- | pkgs/build-support/fetchpatch/default.nix | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/pkgs/build-support/fetchpatch/default.nix b/pkgs/build-support/fetchpatch/default.nix index 1e231d649b3..40a7675b7ac 100644 --- a/pkgs/build-support/fetchpatch/default.nix +++ b/pkgs/build-support/fetchpatch/default.nix @@ -5,7 +5,7 @@ # stripLen acts as the -p parameter when applying a patch. { lib, fetchurl, patchutils }: -{ stripLen ? 0, extraPrefix ? null, excludes ? [], includes ? [], ... }@args: +{ stripLen ? 0, extraPrefix ? null, excludes ? [], includes ? [], revert ? false, ... }@args: fetchurl ({ postFetch = '' @@ -37,7 +37,7 @@ fetchurl ({ ${builtins.toString (builtins.map (x: "-x ${lib.escapeShellArg x}") excludes)} \ ${builtins.toString (builtins.map (x: "-i ${lib.escapeShellArg x}") includes)} \ "$tmpfile" > "$out" - ${args.postFetch or ""} + if [ ! -s "$out" ]; then echo "error: Filtered patch '$out$' is empty (while the original patch file was not)!" 1>&2 echo "Check your includes and excludes." 1>&2 @@ -45,6 +45,9 @@ fetchurl ({ cat "$tmpfile" 1>&2 exit 1 fi - ''; + '' + lib.optionalString revert '' + ${patchutils}/bin/interdiff "$out" /dev/null > "$tmpfile" + mv "$tmpfile" "$out" + '' + (args.postFetch or ""); meta.broken = excludes != [] && includes != []; -} // builtins.removeAttrs args ["stripLen" "extraPrefix" "excludes" "includes" "postFetch"]) +} // builtins.removeAttrs args ["stripLen" "extraPrefix" "excludes" "includes" "revert" "postFetch"]) |