2018-07-31 02:49:43 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
2020-03-06 15:52:17 +00:00
|
|
|
. /start-utils
|
|
|
|
|
2018-07-31 02:49:43 +00:00
|
|
|
shopt -s nullglob
|
|
|
|
|
|
|
|
#umask 002
|
|
|
|
export HOME=/data
|
|
|
|
|
|
|
|
if [ ! -e /data/eula.txt ]; then
|
2019-10-01 18:54:14 +00:00
|
|
|
EULA="${EULA,,}"
|
|
|
|
if [ "$EULA" != "true" ]; then
|
2020-03-06 15:52:17 +00:00
|
|
|
log ""
|
|
|
|
log "Please accept the Minecraft EULA at"
|
|
|
|
log " https://account.mojang.com/documents/minecraft_eula"
|
|
|
|
log "by adding the following immediately after 'docker run':"
|
|
|
|
log " -e EULA=TRUE"
|
|
|
|
log ""
|
2018-07-31 02:49:43 +00:00
|
|
|
exit 1
|
|
|
|
fi
|
2019-09-15 22:15:33 +00:00
|
|
|
|
2020-04-15 13:20:11 +00:00
|
|
|
echo "# Generated via Docker on $(date)" > /data/eula.txt
|
2020-04-12 19:31:19 +00:00
|
|
|
|
2020-04-15 13:20:11 +00:00
|
|
|
if ! echo "eula=$EULA" >> /data/eula.txt; then
|
2020-03-06 15:52:17 +00:00
|
|
|
log "ERROR: unable to write eula to /data. Please make sure attached directory is writable by uid=${UID}"
|
2019-09-15 22:15:33 +00:00
|
|
|
exit 2
|
|
|
|
fi
|
2018-07-31 02:49:43 +00:00
|
|
|
fi
|
|
|
|
|
2019-09-15 22:15:33 +00:00
|
|
|
|
2020-03-06 15:52:17 +00:00
|
|
|
log "Running as uid=$(id -u) gid=$(id -g) with /data as '$(ls -lnd /data)'"
|
2018-07-31 02:49:43 +00:00
|
|
|
|
|
|
|
if ! touch /data/.verify_access; then
|
2020-03-06 15:52:17 +00:00
|
|
|
log "ERROR: /data doesn't seem to be writable. Please make sure attached directory is writable by uid=$(id -u)"
|
2018-07-31 02:49:43 +00:00
|
|
|
exit 2
|
|
|
|
fi
|
|
|
|
|
|
|
|
rm /data/.verify_access || true
|
|
|
|
|
|
|
|
if [[ $PROXY ]]; then
|
|
|
|
export http_proxy="$PROXY"
|
|
|
|
export https_proxy="$PROXY"
|
2020-03-06 15:52:17 +00:00
|
|
|
log "INFO: Giving proxy time to startup..."
|
2018-07-31 02:49:43 +00:00
|
|
|
sleep 5
|
|
|
|
fi
|
|
|
|
|
|
|
|
export SERVER_PROPERTIES=/data/server.properties
|
|
|
|
export VERSIONS_JSON=https://launchermeta.mojang.com/mc/game/version_manifest.json
|
|
|
|
|
|
|
|
case "X$VERSION" in
|
|
|
|
X|XLATEST|Xlatest)
|
2020-04-12 19:31:19 +00:00
|
|
|
VANILLA_VERSION=$(curl -fsSL $VERSIONS_JSON | jq -r '.latest.release')
|
2018-07-31 02:49:43 +00:00
|
|
|
;;
|
|
|
|
XSNAPSHOT|Xsnapshot)
|
2020-04-12 19:31:19 +00:00
|
|
|
VANILLA_VERSION=$(curl -fsSL $VERSIONS_JSON | jq -r '.latest.snapshot')
|
2018-07-31 02:49:43 +00:00
|
|
|
;;
|
|
|
|
X[1-9]*)
|
2020-04-12 19:31:19 +00:00
|
|
|
VANILLA_VERSION=$VERSION
|
2018-07-31 02:49:43 +00:00
|
|
|
;;
|
|
|
|
*)
|
2020-04-12 19:31:19 +00:00
|
|
|
VANILLA_VERSION=$(curl -fsSL $VERSIONS_JSON | jq -r '.latest.release')
|
2018-07-31 02:49:43 +00:00
|
|
|
;;
|
|
|
|
esac
|
2020-04-12 19:31:19 +00:00
|
|
|
export VANILLA_VERSION
|
2020-03-28 18:56:48 +00:00
|
|
|
log "Resolved version given ${VERSION} into ${VANILLA_VERSION}"
|
2018-07-31 02:49:43 +00:00
|
|
|
|
2020-04-12 19:31:19 +00:00
|
|
|
cd /data || exit 1
|
2018-07-31 02:49:43 +00:00
|
|
|
|
2018-08-12 22:25:16 +00:00
|
|
|
export ORIGINAL_TYPE=${TYPE^^}
|
2018-07-31 02:49:43 +00:00
|
|
|
|
2020-03-28 18:56:48 +00:00
|
|
|
log "Resolving type given ${TYPE}"
|
2018-08-12 22:25:16 +00:00
|
|
|
case "${TYPE^^}" in
|
|
|
|
*BUKKIT|SPIGOT)
|
2020-04-12 19:31:19 +00:00
|
|
|
exec /start-deployBukkitSpigot "$@"
|
2018-07-31 02:49:43 +00:00
|
|
|
;;
|
|
|
|
|
2018-08-12 22:25:16 +00:00
|
|
|
PAPER)
|
2020-04-12 19:31:19 +00:00
|
|
|
exec /start-deployPaper "$@"
|
2018-07-31 02:49:43 +00:00
|
|
|
;;
|
|
|
|
|
2018-08-12 22:25:16 +00:00
|
|
|
FORGE)
|
2020-04-12 19:31:19 +00:00
|
|
|
exec /start-deployForge "$@"
|
2018-07-31 02:49:43 +00:00
|
|
|
;;
|
|
|
|
|
2019-07-10 03:19:59 +00:00
|
|
|
FABRIC)
|
2020-04-12 19:31:19 +00:00
|
|
|
exec /start-deployFabric "$@"
|
2019-07-10 03:19:59 +00:00
|
|
|
;;
|
|
|
|
|
2018-08-12 22:25:16 +00:00
|
|
|
FTB|CURSEFORGE)
|
2020-04-12 19:31:19 +00:00
|
|
|
exec /start-deployFTB "$@"
|
2018-07-31 02:49:43 +00:00
|
|
|
;;
|
|
|
|
|
2018-08-12 22:25:16 +00:00
|
|
|
VANILLA)
|
2020-04-12 19:31:19 +00:00
|
|
|
exec /start-deployVanilla "$@"
|
2018-07-31 02:49:43 +00:00
|
|
|
;;
|
|
|
|
|
2018-08-12 22:25:16 +00:00
|
|
|
SPONGEVANILLA)
|
2020-04-12 19:31:19 +00:00
|
|
|
exec /start-deploySpongeVanilla "$@"
|
2018-07-31 02:49:43 +00:00
|
|
|
;;
|
|
|
|
|
2019-01-14 01:00:34 +00:00
|
|
|
CUSTOM)
|
2020-04-12 19:31:19 +00:00
|
|
|
exec /start-deployCustom "$@"
|
|
|
|
;;
|
|
|
|
|
|
|
|
CURSE_INSTANCE)
|
|
|
|
exec /start-validateCurseInstance "$@"
|
2019-01-14 01:00:34 +00:00
|
|
|
;;
|
|
|
|
|
2018-07-31 02:49:43 +00:00
|
|
|
*)
|
2020-03-06 15:52:17 +00:00
|
|
|
log "Invalid type: '$TYPE'"
|
|
|
|
log "Must be: VANILLA, FORGE, BUKKIT, SPIGOT, PAPER, FTB, CURSEFORGE, SPONGEVANILLA"
|
2018-07-31 02:49:43 +00:00
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
|
|
|
|
esac
|