#!/bin/bash

function send_notification() {
    echo "$1"
}

function assert_success() {
    "${@}"
    local status=${?}
    if [ ${status} -ne 0 ]; then
        send_notification "### Error ${status} at: ${BASH_LINENO[*]} ###"
        exit ${status}
    fi
}

assert_success ./uploadSonatypePublication.main.kts --drop

readarray -t projects <<< "`./gradlew getPublishableModules --quiet`"
for project in "${projects[@]}"; do
    echo "Start publishing of $project"
    assert_success ./gradlew "$project:publishAllPublicationsToSonatypeRepository" --no-parallel --quiet
    echo "Complete publishing of $project"
    echo "Start uploading of $project"
    assert_success ./uploadSonatypePublication.main.kts --user_manager
    echo "Complete uploading of $project"
done

assert_success ./uploadSonatypePublication.main.kts --automatic
