#!/usr/bin/env bash
#
#  Build JAR artifacts.
#

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

#---------------------------------------------------
# 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"
JAR_FILE="$JAR_OUTPUT_PATH/$JAR_FILENAME"

#---------------------------------------------------
# Build a Skinny JAR
# Builds a "skinny" JAR appropriate for lib usage and publishing to Clojars.
#---------------------------------------------------
echo "Building jar" >&2
if clojure -A:pack mach.pack.alpha.skinny --no-libs --project-path "$JAR_FILE";
then
    echo "Successfully built JAR $JAR_FILE" >&2
else
    echo "Failed to build JAR $JAR_FILE" >&2
    exit 1
fi
