Download and use Magma server jar rather than installer (#1618)

This commit is contained in:
Geoff Bourne 2022-07-20 21:14:38 -05:00 committed by GitHub
parent eb22d4cadc
commit 5cec41319d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 49 deletions

View file

@ -2,7 +2,7 @@ version: "3.8"
services:
mc:
image: itzg/minecraft-server
image: itzg/minecraft-server:java8
tty: true
stdin_open: true
ports:
@ -10,7 +10,7 @@ services:
environment:
EULA: "TRUE"
TYPE: MAGMA
VERSION: 1.18.2
VERSION: 1.16.5
volumes:
- data:/data
volumes:

View file

@ -6,58 +6,17 @@ 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=$?)"
if ! downloadUrl=$(get --json-path '$.link' "https://api.magmafoundation.org/api/v2/${VANILLA_VERSION}/latest"); then
log "ERROR failed to locate latest Magma download for ${VANILLA_VERSION}. Is that version supported?"
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
if ! SERVER=$(get --output-filename --skip-up-to-date --output /data "$downloadUrl"); then
log "ERROR: failed to download Magma server jar from $downloadUrl"
exit 1
fi
export SERVER
export FAMILY=HYBRID
exec "${SCRIPTS:-/}start-setupWorld" "$@"