1#!/bin/sh
2
3# Update patch set for GNU Bash or Readline.
4
5if [ $# -ne 2 ]
6then
7 echo "Usage: $(basename $0) PROJECT VERSION"
8 echo ""
9 echo "Update the patch set for PROJECT (one of \`bash' or \`readline') for"
10 echo "the given version (e.g., \`4.0'). Produce \`PROJECT-patches.nix'."
11 exit 1
12fi
13
14PROJECT="$1"
15VERSION="$2"
16VERSION_CONDENSED="$(echo $VERSION | sed -es/\\.//g)"
17
18GPG="$(if $(type -P gpg2 > /dev/null); then echo gpg2; else echo gpg; fi)"
19PATCH_LIST="$PROJECT-$VERSION-patches.nix"
20
21set -e
22
23start=1
24end=100 # must be > 99 for correct padding
25
26rm -vf "$PATCH_LIST"
27
28( echo "# Automatically generated by \`$(basename $0)'; do not edit." ; \
29 echo "" ; \
30 echo "patch: [" ) \
31>> "$PATCH_LIST"
32
33for i in `seq -w $start $end`
34do
35 wget ftp.gnu.org/gnu/$PROJECT/$PROJECT-$VERSION-patches/$PROJECT$VERSION_CONDENSED-$i || break
36 wget ftp.gnu.org/gnu/$PROJECT/$PROJECT-$VERSION-patches/$PROJECT$VERSION_CONDENSED-$i.sig
37 "$GPG" --verify $PROJECT$VERSION_CONDENSED-$i.sig
38 echo "(patch \"$i\" \"$(nix-hash --flat --type sha256 --base32 $PROJECT$VERSION_CONDENSED-$i)\")" \
39 >> "$PATCH_LIST"
40
41 rm -f $PROJECT$VERSION_CONDENSED-$i{,.sig}
42done
43
44echo "]" >> "$PATCH_LIST"
45
46echo "Got $(expr $i - 1) patches."
47echo "Patch list has been written to \`$PATCH_LIST'."