#!/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" ]; then
  log "ERROR: Airplane server type only supports VERSION=LATEST, VERSION=1.16, VERSION=1.17 or VERSION=PURPUR. Note that these are branches, not #.#.# versions."
  exit 1
fi

: ${AIRPLANE_BUILD:=lastSuccessfulBuild}

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

if [ "${VERSION}" = "1.17" ]; then
  AIRPLANE_BRANCH="1.17"
  log "Airplane 1.17 is in beta. Use at your own risk!"
fi

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

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

if [ ! -f "$SERVER" ] || isTrue "$FORCE_REDOWNLOAD"; then
    downloadUrl="https://ci.tivy.ca/job/Airplane-${AIRPLANE_BRANCH}/${AIRPLANE_BUILD}/artifact/launcher-airplane.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 "$@"
