#!/bin/sh

TOS="https://www.microsoft.com/en-us/legal/intellectualproperty/copyright/default"
DRIVER_URL=http://download.windowsupdate.com/c/msdownload/update/driver/drvs/2017/07/1cd6a87c-623f-4407-a52d-c31be49e925c_e19f60808bdcbfbd3c3df6be3e71ffc52e43261e.cab
DRIVERFWFILE=FW_ACC_00U.bin
FIRMWARE_HASH=48084d9fa53b9bb04358f3bb127b7495dc8f7bb0b3ca1437bd24ef2b6eabdf66
FWFILE=firmware.bin
DATADIR=/usr/share/xow/
DOCDIR=/usr/share/doc/packages/xow/

CURL_OPTIONS="-L -s --speed-limit 1000 --speed-time 5"

echo "Microsoft Terms of Use:"
if [ -e "${DOCDIR}Microsoft Terms of Use.html" ]; then
    echo "Terms already present"
else
    echo -n "  Fetching   ... "
    curl $CURL_OPTIONS -o "${DOCDIR}Microsoft Terms of Use.html" $TOS || \
      rm -f "${DOCDIR}Microsoft Terms of Use.html"
    echo "done"
fi

tmpname=$(basename "$0")
tmpdir=$(mktemp -d "/tmp/$tmpname.XXXXXX")
trap "rm -rf $tmpdir" EXIT
if [ $? -ne 0 ]; then
  echo "$0: Can't create temp dir, exiting..."
  exit 4
fi

cd "$tmpdir"

if [ -e "${DATADIR}$FWFILE" ]; then
    echo "Firmware file already installed, deleting old file"
    mv -f "${DATADIR}$(FWFILE)" "${DATADIR}${FWFILE}.rpmsave"
fi

echo -n "  Fetching Fimrware ... "
if ! curl $CURL_OPTIONS -o "driver.cab" $DRIVER_URL; then
    rm -f "driver.cab"
    echo "failed ... deleted!"
    exit 1
fi
echo "done";

echo -n "  Extracting Firmware ... "
if ! cabextract -q -l driver.cab 2> /dev/null |grep -w "$DRIVERFWFILE" 2>&1 > /dev/null; then
    rm -f "driver.cab"
    echo "failed ... deleted!"
    exit 2
else
    cabextract -F "$DRIVERFWFILE" driver.cab >/dev/null 2>&1
fi
echo "done";


echo -n "  Verifying Firmware ... "
if ! echo $FIRMWARE_HASH $DRIVERFWFILE | sha256sum --check --quiet --status > /dev/null 2>&1; then
    rm -f $DRIVERFWFILE
    echo "checksum mismatch for $DRIVERFWFILE ... deleted!"
    exit 3
fi
echo "done"

#successfully extracted firmware image
chmod 644 "$DRIVERFWFILE"
mv -f "$DRIVERFWFILE" "${DATADIR}${FWFILE}"
rm -f "$DRIVERFWFILE"

test -f "${DATADIR}/Firmware-License-Disclaimer" && cat "${DATADIR}/Firmware-License-Disclaimer" | tee $POST_MESSAGE

