0
Fork 0
mirror of https://codeberg.org/librewolf/source.git synced 2024-12-21 21:23:08 -05:00
LibreWolf/scripts/fix-patch.sh
Malte Jürgens db83555f2a
fix prefixes
2023-03-15 15:06:17 +01:00

48 lines
1.1 KiB
Bash
Executable file

#!/usr/bin/bash
set -eu
if [ $# -ne 1 ]; then
echo "Usage: $0 <path to patch>"
exit 1
fi
if [ "$1" == "${1%.patch}" ]; then
echo "Error: '$1' does not seem to be a patch."
exit 1
fi
cd "$(dirname "$0")/.."
version="$(cat version)"
if [ -d "firefox-$version" ]; then
echo "-> Removing old 'firefox-$version'"
rm -rf "firefox-$version"
fi
echo "-> Extracting 'firefox-$version.source.tar.xz'"
make "firefox-$version.source.tar.xz"
tar xf "firefox-$version.source.tar.xz"
cd "firefox-$version"
echo "-> Setting up git"
git init
files="$(cat ../$1 | grep '+++ b/' | sed 's/\+\+\+ b\///')"
echo "$files" | xargs touch
echo "$files" | xargs git add
echo "-> Trying to apply patch"
rejects="$(patch -p1 -i "../$1" | tee /dev/stderr | sed -r --quiet 's/^.*saving rejects to file (.*\.rej)$/\1/p')"
echo "-> Done. You can now fix the patch. If you are done, press enter to"
echo " update the patch with your changes or Ctrl+C to abort."
echo "$rejects" | xargs code &
read
echo "-> Updating patch"
sed -i '/^[^#]/d' "../$1"
git diff | sed '/^diff --git /,+1 d' >>"../$1"
sed -i '1{/^$/d}' "../$1"
echo "-> Cleaning up"
cd ..
rm -rf "firefox-$version"