#!/bin/bash
set -euo pipefail
IFS=$'\n\t'

. ${SCRIPTS:-/}start-utils
isDebugging && set -x

if [ "${VERSION}" != "LATEST" ] && [ "${VERSION}" != "1.16" ] && [ "${VERSION}" != "1.17" ] && [ "${VERSION}" != "PURPUR" ] && [ "${VERSION}" != "PURPUR-1.16" ] ; then
  log "ERROR: Airplane server type only supports VERSION=LATEST, VERSION=1.17, VERSION=1.16, VERSION=PURPUR or VERSION=PURPUR-1.16. Note that these are branches, not #.#.# versions."
  exit 1
fi

: ${AIRPLANE_BUILD:=lastSuccessfulBuild}
: ${AIRPLANE_TYPE:=airplane}

if  [ "${VERSION}" = "LATEST" ] || [ "${VERSION}" = "1.17" ]; then
  AIRPLANE_BRANCH="1.17"
fi

if [ "${VERSION}" = "1.16" ]; then
  AIRPLANE_BRANCH="1.16"
fi

if [ "${VERSION}" = "PURPUR" ]; then
  AIRPLANE_BRANCH="Purpur-1.17"
  AIRPLANE_TYPE="airplanepurpur"
fi

if [ "${VERSION}" = "PURPUR-1.16" ]; then
  AIRPLANE_BRANCH="Purpur-1.16"
  AIRPLANE_TYPE="airplanepurpur"
fi

log "Using Airplane-${AIRPLANE_BRANCH} branch"

export SERVER=airplane-${AIRPLANE_BRANCH}-${AIRPLANE_BUILD}.jar

if [ ! -f "$SERVER" ] || isTrue "${FORCE_REDOWNLOAD:-false}"; then
    downloadUrl="https://ci.tivy.ca/job/Airplane-${AIRPLANE_BRANCH}/${AIRPLANE_BUILD}/artifact/launcher-${AIRPLANE_TYPE}.jar"
    log "Downloading Airplane from $downloadUrl ..."
    curl -fsSL -o "$SERVER" "$downloadUrl"
    if [ ! -f "$SERVER" ]; then
      log "ERROR: failed to download from $downloadUrl (status=$?)"
      exit 3
    fi
fi

# Normalize on Spigot for later operations
export TYPE=SPIGOT
export SKIP_LOG4J_CONFIG=true

exec ${SCRIPTS:-/}start-spiget "$@"
