#!/usr/bin/env bash
####################################################
#
#  Publish Artifacts to Clojars
#
####################################################

MODULE_NAME="${MODULE_NAME:-{{name}}}"
JAR_OUTPUT_PATH="${JAR_OUTPUT_PATH:-target}"


if [[ -z "$CLOJARS_USERNAME" ]]; then
  echo "CLOJARS_USERNAME env must be set" >&2
  exit 1
fi
if [[ -z "$CLOJARS_PASSWORD" ]]; then
  echo "CLOJARS_PASSWORD env must be set" >&2
  exit 1
fi

#---------------------------------------------------
# Get Release Meta
#---------------------------------------------------
version_info=$(clj -A:metav -m metav.display \
  --config-file .metav.edn \
  --module-name-override "$MODULE_NAME")
if [ -z "${version_info}" ]; then
    echo "Failed to get version info."
    exit 1
fi

ARTIFACT_ID="$(echo "$version_info" | cut -f1)"
ARTIFACT_VERSION="$(echo "$version_info" | cut -f2)"
JAR_FILENAME="${ARTIFACT_ID}-${ARTIFACT_VERSION}.jar"

#---------------------------------------------------
# Publish to Clojars
#---------------------------------------------------
echo "Publishing $JAR_OUTPUT_PATH/$JAR_FILENAME to Clojars." >&2
if clojure -A:deploy "$JAR_OUTPUT_PATH/$JAR_FILENAME"
then
    echo "Successfully published JAR $JAR_OUTPUT_PATH/$JAR_FILENAME" >&2
else
    echo "Failed to publish JAR $JAR_OUTPUT_PATH/$JAR_FILENAME" >&2
    exit 1
fi
