mirror of
https://github.com/itzg/docker-minecraft-server.git
synced 2026-10-19 01:18:12 +00:00
56 lines
1.5 KiB
Bash
Executable File
56 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# shellcheck source=start-utils
|
|
. "${SCRIPTS:-$(dirname "$0")}/start-utils"
|
|
set -o pipefail
|
|
set -e
|
|
isDebugging && set -x
|
|
|
|
resolveVersion
|
|
: "${CRUCIBLE_RELEASE:=latest}"
|
|
|
|
# An omitted --release-tag means the latest release, so only pass it when a
|
|
# specific release was requested
|
|
crucibleReleaseArgs=()
|
|
[[ ${CRUCIBLE_RELEASE} == latest ]] || crucibleReleaseArgs+=(--release-tag="${CRUCIBLE_RELEASE}")
|
|
|
|
crucibleRepo=CrucibleMC/Crucible
|
|
|
|
log "Downloading Crucible ${VERSION} from the ${CRUCIBLE_RELEASE} release"
|
|
if ! SERVER=$(mc-image-helper github download-asset \
|
|
"${crucibleReleaseArgs[@]}" \
|
|
--output-directory=/data \
|
|
--name-pattern="^Crucible-${VERSION}-.+\.jar$" \
|
|
${crucibleRepo}
|
|
); then
|
|
logError "Failed to download Crucible jar for ${VERSION} from the ${CRUCIBLE_RELEASE} release"
|
|
logError "Ensure CRUCIBLE_RELEASE is one of the releases at ${crucibleReleasesUrl}"
|
|
exit 1
|
|
fi
|
|
|
|
librariesDir=/data/libraries
|
|
if [ ! -d "$librariesDir" ]; then
|
|
if ! librariesZip=$(mc-image-helper github download-asset \
|
|
"${crucibleReleaseArgs[@]}" \
|
|
--output-directory=/tmp \
|
|
--name-pattern="^libraries\.zip$" \
|
|
${crucibleRepo}
|
|
); then
|
|
logError "Failed to download Crucible libraries from the ${CRUCIBLE_RELEASE} release"
|
|
exit 1
|
|
fi
|
|
|
|
log "Downloading Crucible libraries"
|
|
if ! unzip "$librariesZip" -d "$librariesDir"; then
|
|
logError "Failed to unzip Crucible libraries"
|
|
exit 1
|
|
fi
|
|
rm "$librariesZip"
|
|
fi
|
|
|
|
export SERVER
|
|
export FAMILY=HYBRID
|
|
export HYBRIDTYPE=forge
|
|
|
|
exec "$(dirname "$0")/start-spiget" "$@"
|