#!/usr/bin/env bash
set -euo pipefail

SOURCE_BASE_URL="https://dl.dadyarri.dev/check"
ARCHIVE_NAME="check-0.1.0-alt10-x86_64.tar.gz"
ARCHIVE_SHA256="4b0d77817cf7e079c09628a2008a856cf0945b71a42d16d190600d9dae16a5bf"
RELEASE_DIRECTORY="check-0.1.0-alt10-x86_64"

for required_command in curl tar sha256sum mktemp uname; do
    if ! command -v "$required_command" >/dev/null 2>&1; then
        printf 'check: required command is unavailable: %s\n' "$required_command" >&2
        exit 1
    fi
done

if [[ $(uname -m) != x86_64 ]]; then
    printf '%s\n' 'check: this release supports x86-64 Linux only' >&2
    exit 1
fi

temporary_directory=$(mktemp -d "${TMPDIR:-/tmp}/check-install.XXXXXX")
cleanup() {
    rm -rf -- "$temporary_directory"
}
trap cleanup EXIT HUP INT TERM

archive_path="$temporary_directory/$ARCHIVE_NAME"
printf 'Downloading %s/%s\n' "$SOURCE_BASE_URL" "$ARCHIVE_NAME"
curl \
    --fail \
    --show-error \
    --silent \
    --location \
    --proto '=https' \
    --tlsv1.2 \
    --output "$archive_path" \
    "$SOURCE_BASE_URL/$ARCHIVE_NAME"

printf '%s  %s\n' "$ARCHIVE_SHA256" "$ARCHIVE_NAME" \
    | (cd "$temporary_directory" && sha256sum --check -)

tar -xzf "$archive_path" -C "$temporary_directory"
release_directory="$temporary_directory/$RELEASE_DIRECTORY"
if [[ ! -x "$release_directory/install.sh" ]]; then
    printf '%s\n' 'check: downloaded release does not contain install.sh' >&2
    exit 1
fi

"$release_directory/install.sh"
