diff --git a/scripts/patch-tool b/scripts/patch-tool index 4757f8e923edf0a9fd8ca575b0e5c3379215231a..3ef49e301dafa187eefe1441a69f4b20dbc15a83 100755 --- a/scripts/patch-tool +++ b/scripts/patch-tool @@ -39,12 +39,24 @@ add_pkg_dirs() { patch_pkg() { local pkg=$(basename $1 .patch) + local pkg_dir=packages/$pkg local patch=$patches_dir/$pkg.patch - if [ ! -e "$patch" ]; then - echo "No patches for $pkg; skipping patching." return - else - local pkg_dir=packages/$pkg + local cabal=$patches_dir/$pkg.cabal + + local patched= + if [ -f "$patch" ]; then + echo "Applied patch $patch to $pkg" git -C $pkg_dir apply $patch + patched=1 + fi + + if [ -f "$cabal" ]; then + echo "Updated cabal file of $pkg with $cabal" + cp "$cabal" $pkg_dir/*.cabal + patched=1 + fi + + if [ -n "$patched" ]; then git -C $pkg_dir commit -q -a -m "head.hackage.org patch" fi }