Add release selection for the GitHub-released server types (#4339)

This commit is contained in:
Fewwan authored and GitHub committed 2026-10-18 17:40:51 -05:00
1 parent 2ae1097bb9
commit dbb0909282
24 files changed
+225 -63

No files matched your search

+22 -2
View File
@@ -26,20 +26,40 @@ if [[ $(getDistro) == alpine ]]; then
pumpkinAsset+="-musl"
fi
pumpkinReleasesUrl=https://github.com/Pumpkin-MC/Pumpkin/releases
: "${PUMPKIN_RELEASE:=latest}"
# Only pass --release-tag when a specific release was requested; helper treats
# omitted as latest
pumpkinReleaseArgs=()
[[ ${PUMPKIN_RELEASE} == latest ]] || pumpkinReleaseArgs+=(--release-tag="${PUMPKIN_RELEASE}")
# The asset is downloaded to a fixed filename, so discard a previously
# downloaded executable when a different release is requested
pumpkinReleaseMarker=/data/.pumpkin-release
if [[ -f "${pumpkinReleaseMarker}" && $(<"${pumpkinReleaseMarker}") != "${PUMPKIN_RELEASE}" ]]; then
log "Switching Pumpkin release from $(<"${pumpkinReleaseMarker}") to ${PUMPKIN_RELEASE}"
rm -f "/data/${pumpkinAsset}"
fi
if isTrue "${FORCE_REDOWNLOAD:-false}"; then
log "Forcing re-download of ${pumpkinAsset}"
rm -f "/data/${pumpkinAsset}"
fi
if ! SERVER=$(mc-image-helper github download-latest-asset \
if ! SERVER=$(mc-image-helper github download-asset \
"${pumpkinReleaseArgs[@]}" \
--output-directory=/data \
--name-pattern="^${pumpkinAsset}$" \
Pumpkin-MC/Pumpkin
); then
logError "Failed to download ${pumpkinAsset} from the latest Pumpkin release"
logError "Failed to download ${pumpkinAsset} from the Pumpkin release ${PUMPKIN_RELEASE}"
logError "Ensure PUMPKIN_RELEASE is one of the releases at ${pumpkinReleasesUrl}"
exit 1
fi
printf '%s' "${PUMPKIN_RELEASE}" > "${pumpkinReleaseMarker}"
log "Using Pumpkin server executable ${SERVER}"
if [[ ! -x "${SERVER}" ]]; then
chmod +x "${SERVER}"