diff options
Diffstat (limited to '')
-rwxr-xr-x | scripts/mkdiff | 68 |
1 files changed, 41 insertions, 27 deletions
diff --git a/scripts/mkdiff b/scripts/mkdiff index d180aaade..4f7bfc77a 100755 --- a/scripts/mkdiff +++ b/scripts/mkdiff @@ -1,48 +1,64 @@ #!/bin/sh +if [ $# != 1 ] ; then + echo "usage: mkdiff package-name" >&2 + exit 1 +fi + +pack="$1" + 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/' ) +curr_ver=$(ls $pack-*.tar.gz 2>/dev/null | sort -r -t '.' -n +0.4 -1 +1 -2 +2 \ + | head -1 | sed -e 's/'$pack'-\(.*\).tar.gz/\1/' ) +if [ ! -f $pack-$curr_ver.tar.gz ]; then + echo "mkdiff: no current version of package $pack found" >&2 + exit 1 +fi +prev_ver=$(ls $pack-*.tar.gz 2>/dev/null | sort -r -t '.' -n +0.4 -1 +1 -2 +2 \ + | head -2 | tail -1 | sed -e 's/'$pack'-\(.*\).tar.gz/\1/' ) +if [ "$prev_ver" = "$curr_ver" ]; then + echo "mkdiff: no previous version of package $pack found" >&2 + exit 1 +fi + +echo "Current is: $pack-$curr_ver" +echo "Previous is: $pack-$prev_ver" -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" +[ -d "$pack-$curr_ver" ] && rm -rf "$pack-$curr_ver" +[ -d "$pack-$prev_ver" ] && rm -rf "$pack-$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 +tar xzf "$pack-$curr_ver.tar.gz" +rm -f $pack-${curr_ver}/po/*.gmo +tar xzf "$pack-$prev_ver.tar.gz" +rm -f $pack-${prev_ver}/po/*.gmo echo "Diffing" -tmp_name="gnupg-$curr_ver.diff.tmp" -diff_name="gnupg-$curr_ver.diff" +tmp_name="$pack-$prev_ver-$curr_ver.diff.tmp" +diff_name="$pack-$prev_ver-$curr_ver.diff" -diff -urN "gnupg-$prev_ver/" "gnupg-$curr_ver/" > $tmp_name || true +diff -urN "$pack-$prev_ver/" "$pack-$curr_ver/" > $tmp_name || true echo "Making patch file" cat <<EOF > $diff_name -This is a patch file against $prev_ver. +This is a patch file to create version $curr_ver from $prev_ver. Please check the signature of this patch file: - zcat somepath/gnupg-$curr_ver.diff.gz | gpg --verify + zcat somepath/$pack-$prev_ver-$curr_ver.diff.gz | gpg --verify -Change to directory gnupg-$prev_ver (or however you renamed it) +Change to directory $pack-$prev_ver (or however you renamed it) and give this command: - zcat somepath/gnupg-$curr_ver.diff.gz | patch -p1 + zcat somepath/$pack-$prev_ver-$curr_ver.diff.gz | patch -p1 -It is a good idea to rename your current directory to gnupg-$curr_ver now. +It is a good idea to rename your current directory to $pack-$curr_ver now. @@ -57,17 +73,17 @@ sed -e '/^diff.*VERSION/,/^+[0-9][0-9]*/ d' $tmp_name >> $diff_name rm $tmp_name echo "Signing and compressing patch file" -gpg --clearsign --not-dash-escaped -u "(gnupg sig)" \ +gpg --clearsign --not-dash-escaped -u 57548DCD \ < $diff_name | gzip --best > $diff_name.gz rm $diff_name echo "Checking patch file" -cd gnupg-$prev_ver +cd $pack-$prev_ver zcat ../$diff_name.gz | patch -s -p1 rm $(find . -name "*.orig") 2>/dev/null || true cd .. -if ! diff -urN "gnupg-$prev_ver/" "gnupg-$curr_ver/" >/dev/null ; then +if ! diff -urN "$pack-$prev_ver/" "$pack-$curr_ver/" >/dev/null ; then echo "compare failed" exit 1 fi @@ -79,10 +95,8 @@ fi echo "cleaning up" -rm -rf "gnupg-$curr_ver" -rm -rf "gnupg-$prev_ver" +rm -rf "$pack-$curr_ver" +rm -rf "$pack-$prev_ver" echo "Patch file $diff_name.gz is good." - - |