#!/bin/bash # shellcheck source=start-utils . "${SCRIPTS:-/}start-utils" isDebugging && set -x : "${VANILLA_VERSION?}" magmaHandleInstaller() { url=${1?} tagName=${2?} markerFile=${3?} installerFile="magma-installer-${VANILLA_VERSION}-${tagName}.jar" log "Downloading Magma installer file for ${VANILLA_VERSION} @ ${tagName}" if ! curl -o "$installerFile" -fsSL "$url"; then log "ERROR failed to download Magma installer from $url (status=$?)" exit 1 fi echo "forge" > "$markerFile" export FORGE_INSTALLER="$installerFile" export FORGE_INSTALLER_CUSTOM_VERSION="$tagName" # now hand off the rest to forge exec ${SCRIPTS:-/}start-deployForge "$@" } latestMeta=$(curl -fsSL https://api.magmafoundation.org/api/v2/${VANILLA_VERSION}/latest || exit $?) if [ $? != 0 ]; then log "ERROR failed to locate latest Magma info for ${VANILLA_VERSION} (error=$?)" exit 1 fi tagName=$(echo "${latestMeta}" | jq -r '.tag_name') markerFile=".magma-installed-${VANILLA_VERSION}-${tagName}" if [ -f "${markerFile}" ]; then installedTagName=$(cat "${markerFile}") fi if [ ! -f "${markerFile}" ]; then assetUrl=$(echo "${latestMeta}" | jq -r ".installer_link") if [ $? != 0 ] || [ -z "$assetUrl" ]; then log "ERROR failed to extract installer for ${VANILLA_VERSION} tag ${tagName}" exit 1 fi magmaHandleInstaller "$assetUrl" "$tagName" "$markerFile" else export SERVER=$(cat "${markerFile}") if [[ $SERVER == "forge" ]]; then export FORGE_INSTALLER="magma-installer-${VANILLA_VERSION}-${tagName}.jar" export FORGE_INSTALLER_CUSTOM_VERSION="$tagName" # now hand off the rest to forge exec ${SCRIPTS:-/}start-deployForge "$@" fi fi export FAMILY=HYBRID exec "${SCRIPTS:-/}start-setupWorld" "$@"