#!/usr/bin/bash

set -ex

# Upload HTML version of `make check-release-status` to updates server

scripts_dir="/usr/local/lib/qubes-builder-github"

# shellcheck source=lib/functions.sh
. "$scripts_dir/lib/functions.sh"

if [ -z "$HOST" ]; then
    if grep -q yum.qubes-os.org ~/.ssh/config; then
        HOST=yum.qubes-os.org
    elif grep -q deb.qubes-os.org ~/.ssh/config; then
        HOST=deb.qubes-os.org
    elif grep -q archlinux.qubes-os.org ~/.ssh/config; then
        HOST=archlinux.qubes-os.org
    else
        echo "Failed to detect target host, set $HOST explicitly" >&2
        exit 1
    fi
fi

ssh "$HOST" mkdir -p status

check_release_status() {
    local builder_conf="$3"
    local builder_name
    builder_name="$(dirname "$builder_conf")"
    builder_name="${builder_name##*/}"
    tmp_output_component="/tmp/${builder_name}-$(hostname)-status-component.yml"
    tmp_output_template="/tmp/${builder_name}-$(hostname)-status-template.yml"
    cd "$2"
    ./qb --builder-conf "$builder_conf" repository check-release-status-for-component > "$tmp_output_component"
    ./qb --builder-conf "$builder_conf" repository check-release-status-for-template > "$tmp_output_template"
    scp "$tmp_output_component" "$tmp_output_template" "$HOST:status/"
}

execute_in_each_builder check_release_status

wait

scp "$scripts_dir"/utils/combine-status.py "$HOST:status/"
ssh "$HOST" status/combine-status.py --input-dir status/ --output-dir public_html/
