#!/usr/bin/env bash

set -e

repo_dir="$(readlink -f "$(dirname "$0")/..")"
out_dir="$(readlink -f "${repo_dir}/../${PYPI:-}/dist")"
echo "out-dir: ${out_dir}"

model_element_cmd="cli.py config model_element --cfg-type pypi --cfg-name gardener"

username="$(${model_element_cmd} --key credentials.username)"
passwd="$(${model_element_cmd} --key credentials.passwd)"

set -x
pip3 install --upgrade twine

# upload to pypi; retries are required to deal with the sporadic issue
# 400: The digest supplied does not match a digest calculated from the uploaded file.
for i in {1..5}; do twine upload --user "${username}" --password "${passwd}" "${out_dir}"/* && break || sleep 15; done
