#!/bin/sh

VERSION=0.9.1
ARCH=amd64
BIN="matchbox"
FILENAME="matchbox-v${VERSION}-linux-${ARCH}.tar.gz"
URL="https://github.com/poseidon/matchbox/releases/download/v${VERSION}/${FILENAME}"
MATCHBOX_DIR="/var/lib/matchbox"
ASSETS_DIR="${MATCHBOX_DIR}/assets/"
MATCHBOX_USER="matchbox"
FL_VERSIONS="current 3374.2.0"

apk add wget

echo "Downloading matchbox"
cd /tmp
wget -q --show-progress "${URL}"
tar -xzvf "${FILENAME}"
cd ./matchbox-v${VERSION}-linux-${ARCH}

echo "Installing matchbox"
cp ${BIN} /usr/local/bin

echo "Installing get-flatcar"
cp ./scripts/get-flatcar /usr/local/bin
chmod +x /usr/local/bin/get-flatcar

useradd -U "${MATCHBOX_USER}"
mkdir -p "${ASSETS_DIR}"
chown -R "${MATCHBOX_USER}:${MATCHBOX_USER}" "${MATCHBOX_DIR}"
chown -R "${MATCHBOX_USER}:${MATCHBOX_USER}" "${ASSETS_DIR}"

tout=30
item=1
echo "Provisionning matchbox with flatcar images"
echo "  * Current stable image (try 1)"
for version in ${FL_VERSIONS}; do
   while ! bash -x /usr/local/bin/get-flatcar stable ${version} ${ASSETS_DIR}; do
      sleep 1
      echo "  * ${version} stable image (try ${item})"
      if [ "${tout}" -eq "${item}" ]; then
        break
        exit 1
      fi
      item=$((item+1))
    done
done

echo "  * 3374.2.0 stable image (try 1)"
get-flatcar stable 3374.2.0 "${ASSETS_DIR}"
if [ "${?}" -ne 0 ]; then
   sleep 3
   echo "  * 3374.2.0 stable image (try 2)"
   get-flatcar stable 3374.2.0 "${ASSETS_DIR}"
fi

chown -R "${MATCHBOX_USER}:${MATCHBOX_USER}" "${ASSETS_DIR}"
ls -lhaR ${ASSETS_DIR}

cp -rp ./scripts/tls /root

exit "${?}"