#!/usr/bin/env bash

set -euo pipefail

usage() {
    printf 'Usage: GITEA_TOKEN=... %s PATH_TO_RPM FEDORA_RELEASE\n' "$0" >&2
}

if (( $# != 2 )); then
    usage
    exit 2
fi

rpm_path=$1
fedora_release=$2

if [[ ! -f $rpm_path || $rpm_path != *.rpm ]]; then
    printf 'Error: %s is not an RPM file.\n' "$rpm_path" >&2
    exit 2
fi

if [[ ! $fedora_release =~ ^[0-9]+$ ]]; then
    printf 'Error: Fedora release must be a number, such as 44.\n' >&2
    exit 2
fi

if [[ -z ${GITEA_TOKEN:-} ]]; then
    printf 'Error: set GITEA_TOKEN to a Gitea access token with package write permission.\n' >&2
    exit 2
fi

upload_url="https://git.ajpanton.se/api/packages/ajp_anton/rpm/fedora/${fedora_release}/upload?sign=true"

curl \
    --fail-with-body \
    --show-error \
    --silent \
    --user "ajp_anton:${GITEA_TOKEN}" \
    --upload-file "$rpm_path" \
    "$upload_url"

printf 'Published %s for Fedora %s.\n' "$rpm_path" "$fedora_release"
