1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-11-10 21:38:50 +01:00
gnupg/scripts/mkdiff
1998-05-04 18:49:26 +00:00

79 lines
1.7 KiB
Bash
Executable File

#!/bin/sh
set -e
curr_ver=$(ls gnupg-*.tar.gz | sort -r -t '.' -n +0.4 -1 +1 -2 +2 \
| head -1 | sed -e 's/gnupg-\(.*\).tar.gz/\1/' )
prev_ver=$(ls gnupg-*.tar.gz | sort -r -t '.' -n +0.4 -1 +1 -2 +2 \
| head -2 | tail -1 | sed -e 's/gnupg-\(.*\).tar.gz/\1/' )
echo "Current is: $curr_ver"
echo "Previous is: $prev_ver"
echo "Removing old directories"
[ -d "gnupg-$curr_ver" ] && rm -rf "gnupg-$curr_ver"
[ -d "gnupg-$prev_ver" ] && rm -rf "gnupg-$prev_ver"
echo "Unpacking previous and current tar"
tar xzf "gnupg-$curr_ver.tar.gz"
rm -f gnupg-${curr_ver}/po/*.gmo
tar xzf "gnupg-$prev_ver.tar.gz"
rm -f gnupg-${prev_ver}/po/*.gmo
echo "Diffing"
tmp_name="gnupg-$curr_ver.diff.tmp"
diff_name="gnupg-$curr_ver.diff"
diff -urN "gnupg-$prev_ver/" "gnupg-$curr_ver/" > $tmp_name || true
echo "Making patch file"
cat <<EOF > $diff_name
This is a patch file against $prev_ver.
Change to directory gnupg-$prev_ver (or however you renamed it)
and give this command:
zcat somepath/gnupg-$curr_ver.diff.gz | patch -p1
It is a good idea to rename your current directory to gnupg-$curr_ver now.
Prereq: $prev_ver
EOF
sed -ne '/^diff.*VERSION/,/^+[0-9][0-9]*/ p' $tmp_name >> $diff_name
echo >> $diff_name
sed -e '/^diff.*VERSION/,/^+[0-9][0-9]*/ d' $tmp_name >> $diff_name
rm $tmp_name
echo "Compressing patch file"
gzip -9 $diff_name
echo "Checking patch file"
cd gnupg-$prev_ver
zcat ../$diff_name.gz | patch -s -p1
rm $(find . -name "*.orig")
cd ..
if ! diff -urN "gnupg-$prev_ver/" "gnupg-$curr_ver/" >/dev/null ; then
echo "compare failed"
exit 1
fi
echo "cleaning up"
rm -rf "gnupg-$curr_ver"
rm -rf "gnupg-$prev_ver"
echo "Patch file $diff_name.gz is good."