#!/bin/bash
set -euo pipefail

###
#
# Publishes all *.whl files to PyPI
#
# Usage: ./publib-pypi [DIR]
#
# DIR is where *.whl files are looked up (default is "dist/python")
#
# TWINE_USERNAME (required)
# TWINE_PASSWORD (required)
#
###

cd "${1:-"dist/python"}"

[ -z "${TWINE_USERNAME:-}" ] && {
  echo "Missing TWINE_USERNAME"
  exit 1
}

[ -z "${TWINE_PASSWORD:-}" ] && {
  echo "Missing TWINE_PASSWORD"
  exit 1
}

if [ -z "$(ls *.whl)" ]; then
  echo "cannot find any .whl files in $PWD"
  exit 1
fi

python3 -m pip install --user --upgrade twine
python3 -m twine upload --verbose --skip-existing *
