#!/bin/bash set -euo pipefail IFS=$'\n\t' # shellcheck source=start-utils . "${SCRIPTS:-/}start-utils" isDebugging && set -x : "${CANYON_BUILD:=lastSuccessfulBuild}" if [ "${VERSION}" != "b1.7.3" ]; then log "ERROR: Canyon server type only supports VERSION=b1.7.3" exit 1 fi canyonJob="https://jenkins.glass-launcher.net/job/Canyon" githubUrl="https://github.com/KoboDev/SupplyAndDemand/releases/download" buildRelPath=$( curl -fsSL "${canyonJob}/${CANYON_BUILD}/api/json" | jq -r '.artifacts[0].relativePath' ) buildNumber=$( curl -fsSL "${canyonJob}/${CANYON_BUILD}/api/json" | jq -r '.number' ) baseName=$(basename "${buildRelPath}") # Add build tag to non-tagged builds for version detection if [ ${baseName%.*} = 'canyon-server' ]; then export SERVER=${baseName%.*}_build${buildNumber}.jar else export SERVER="${baseName}" fi if [ ! -f "$SERVER" ]; then # If CANYON_BUILD is old artifact, then download from GitHub if [ "${CANYON_BUILD}" = "final" ]; then downloadUrl="${githubUrl}/finalcanyon/canyon-server.jar" log "Downloading final Canyon build from $downloadUrl ..." elif [ "${CANYON_BUILD}" = "6" ]; then downloadUrl="${githubUrl}/CanyonRelease/Canyon-Build-6.jar" log "Downloading Canyon build 6 from $downloadUrl ..." elif [ "${CANYON_BUILD}" = "26" ]; then downloadUrl="${githubUrl}/CanyonRelease/canyon-build-26.jar" log "Downloading Canyon build 26 from $downloadUrl ..." # Builds greater than 32 are on Jenkins else downloadUrl="${canyonJob}/${CANYON_BUILD}/artifact/${buildRelPath}" log "Downloading Canyon build ${buildNumber} from $downloadUrl ..." fi 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 FAMILY=SPIGOT exec ${SCRIPTS:-/}start-spiget "$@"