#!/usr/bin/env bash
# Change the version numbers in the toolvers file and then run this 
# script to update the hashes

ARCHIVES=archives
GNU_MIRROR=https://mirrors.kernel.org/gnu
TOOLVERS_FILE="toolvers"
. "$TOOLVERS_FILE"

function verify_sig() {
  SIGFILE="$1"
  ARCHIVE="$2"

  if ! gpg -q --verify "$SIGFILE" "$ARCHIVE"; then
    echo "Failed to verify $ARCHIVE, aborting"
    exit 1
  fi
}

function fetch_and_verify() {
  PKG_URI_DIR="$1"
  FILENAME="$2"

  if [ ! -f "$ARCHIVES/$FILENAME" ]; then
    wget -P "$ARCHIVES" -N "$PKG_URI_DIR/$FILENAME"
  fi
  if [ ! -f "$ARCHIVES/$FILENAME.sig" ]; then
    wget -P "$ARCHIVES" -N "$PKG_URI_DIR/$FILENAME.sig"
  fi

  verify_sig "$ARCHIVES/$FILENAME.sig" "$ARCHIVES/$FILENAME"
}


fetch_and_verify "$GNU_MIRROR/binutils/" "binutils-$BINVER.tar.bz2"
fetch_and_verify "$GNU_MIRROR/gcc/gcc-$GCCVER/" "gcc-$GCCVER.tar.bz2"
fetch_and_verify "$GNU_MIRROR/gdb/" "gdb-$GDBVER.tar.xz"
fetch_and_verify "$GNU_MIRROR/mpfr/" "mpfr-$MPFRVER.tar.bz2"
fetch_and_verify "$GNU_MIRROR/mpc/" "mpc-$MPCVER.tar.gz"
fetch_and_verify "$GNU_MIRROR/gmp/" "gmp-$GMPVER.tar.bz2"

BINHASH=$(shasum -a 256 -b "$ARCHIVES/binutils-$BINVER.tar.bz2" | cut -f1 -d' ')
GCCHASH=$(shasum -a 256 -b "$ARCHIVES/gcc-$GCCVER.tar.bz2" | cut -f1 -d' ')
GDBHASH=$(shasum -a 256 -b "$ARCHIVES/gdb-$GDBVER.tar.xz" | cut -f1 -d' ')
MPFRHASH=$(shasum -a 256 -b "$ARCHIVES/mpfr-$MPFRVER.tar.bz2" | cut -f1 -d' ')
MPCHASH=$(shasum -a 256 -b "$ARCHIVES/mpc-$MPCVER.tar.gz" | cut -f1 -d' ')
GMPHASH=$(shasum -a 256 -b "$ARCHIVES/gmp-$GMPVER.tar.bz2" | cut -f1 -d' ')

tmp=$(mktemp)
echo "# Rerun updatetoolvers after modifying this file" > "$tmp"
echo "GCCVER=$GCCVER" >> "$tmp"
echo "BINVER=$BINVER" >> "$tmp"
echo "GDBVER=$GDBVER" >> "$tmp"
echo "GMPVER=$GMPVER" >> "$tmp"
echo "MPCVER=$MPCVER" >> "$tmp"
echo "MPFRVER=$MPFRVER" >> "$tmp"

echo "# Below is autogenerated by updatetoolvers" >> "$tmp"
echo "GCCHASH=$GCCHASH" >> "$tmp"
echo "BINHASH=$BINHASH" >> "$tmp"
echo "GDBHASH=$GDBHASH" >> "$tmp"
echo "GMPHASH=$GMPHASH" >> "$tmp"
echo "MPCHASH=$MPCHASH" >> "$tmp"
echo "MPFRHASH=$MPFRHASH" >> "$tmp"
mv "$tmp" "$TOOLVERS_FILE"
