#!/bin/bash

function display_usage() {
    echo "$0 <path_to_file_containing_release_names>"
}

if [[ -f ~/.config/update_reporter.config ]]; then
    source ~/.config/update_reporter.config
else
    echo "Please provide a configuration file at ~/.config/update_reporter.config. A sample file is provided in this repository."
    exit 1
fi

if [[ -z "${APACHE_USER}" ]]; then
    echo "Please set the APACHE_USER variable in the update_reporter.config file."
    exit 1
fi
if [[ -z "${APACHE_PASSWORD}" ]]; then
    echo "Please set the APACHE_PASSWORD variable in the update_reporter.config file."
    exit 1
fi
if [[ -z "$1" ]]; then
    echo "Please provide a file with the release names, one release name per line."
    display_usage
    exit 1
fi
BASIC="$(echo -n "$APACHE_USER:$APACHE_PASSWORD" | base64)"
DATE="`date '+%Y-%m-%d'`"
EPOCH="`date '+%s'`"
while IFS='' read -r line || [[ -n "$line" ]]; do
    release=${line// /+}
    status=`curl -s -o /dev/null -w "%{http_code}" 'https://reporter.apache.org/addrelease.py' \
            -H 'Connection: keep-alive' \
            -H 'Cache-Control: max-age=0' \
            -H "Authorization: Basic ${BASIC}" \
            -H 'Origin: https://reporter.apache.org' \
            -H 'Upgrade-Insecure-Requests: 1' \
            -H 'Content-Type: application/x-www-form-urlencoded' \
            -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.20 Safari/537.36' \
            -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8' \
            -H 'Referer: https://reporter.apache.org/addrelease.html?sling' \
            -H 'Accept-Encoding: gzip, deflate, br' \
            --data "date=${EPOCH}&committee=sling&version=${release}&xdate=${DATE}" --compressed`
    if [[ "$status" -ne 200 ]]; then
        echo "Failed to update ${line}: got status code ${status}"
        exit 1
    fi
done < "$1"



