Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1#!/usr/bin/env nix-shell 2#!nix-shell --pure -i bash -p wget -p gnupg -p cacert -p nix 3 4# Update patch set for GNU Bash or Readline. 5 6if [ $# -ne 2 ] 7then 8 echo "Usage: $(basename "$0") PROJECT VERSION" 9 echo "" 10 echo "Update the patch set for PROJECT (one of \`bash' or \`readline') for" 11 echo "the given version (e.g., \`4.0'). Produce \`PROJECT-patches.nix'." 12 exit 1 13fi 14 15PROJECT="$1" 16VERSION="$2" 17DIR=$(dirname "$0") 18VERSION_CONDENSED="$(echo "$VERSION" | sed -es/\\.//g)" 19PATCH_LIST="$DIR/$PROJECT-$VERSION-patches.nix" 20 21set -e 22 23rm -vf "$PATCH_LIST" 24 25wget "https://tiswww.case.edu/php/chet/gpgkey.asc" 26echo "4ef5051ce7200241e65d29c11eb57df8 gpgkey.asc" > gpgkey.asc.md5 27md5sum -c gpgkey.asc.md5 28gpg --import ./gpgkey.asc 29rm gpgkey.asc{,.md5} 30 31( echo "# Automatically generated by \`$(basename "$0")'; do not edit." ; \ 32 echo "" ; \ 33 echo "patch: [" ) \ 34>> "$PATCH_LIST" 35 36for i in {001..100} 37do 38 wget -P "$DIR" "ftp.gnu.org/gnu/$PROJECT/$PROJECT-$VERSION-patches/$PROJECT$VERSION_CONDENSED-$i" || break 39 wget -P "$DIR" "ftp.gnu.org/gnu/$PROJECT/$PROJECT-$VERSION-patches/$PROJECT$VERSION_CONDENSED-$i.sig" 40 gpg --verify "$DIR/$PROJECT$VERSION_CONDENSED-$i.sig" 41 hash=$(nix-hash --flat --type sha256 --base32 "$DIR/$PROJECT$VERSION_CONDENSED-$i") 42 echo "(patch \"$i\" \"$hash\")" \ 43 >> "$PATCH_LIST" 44 45 rm -f "$DIR/$PROJECT$VERSION_CONDENSED-$i"{,.sig} 46done 47 48echo "]" >> "$PATCH_LIST" 49 50# bash interprets numbers starting with 0 as octals 51echo "Got $((10#$i - 1)) patches." 52echo "Patch list has been written to \`$PATCH_LIST'."