mirror of
https://github.com/itzg/docker-minecraft-server.git
synced 2026-09-05 05:35:04 +00:00
Support downloading CurseForge modpack when USE_MODPACK_START_SCRIPT is false (#1229)
This commit is contained in:
+31
-28
@@ -35,11 +35,37 @@ FTB_SERVER_MOD=${FTB_SERVER_MOD:-$CF_SERVER_MOD}
|
|||||||
log "Looking for Feed-The-Beast / CurseForge server modpack."
|
log "Looking for Feed-The-Beast / CurseForge server modpack."
|
||||||
requireVar FTB_SERVER_MOD
|
requireVar FTB_SERVER_MOD
|
||||||
|
|
||||||
if ! isTrue "${USE_MODPACK_START_SCRIPT:-true}"; then
|
downloadModpack() {
|
||||||
if ! [ -f "${FTB_SERVER_MOD}" ]; then
|
srv_modpack=${FTB_SERVER_MOD}
|
||||||
log "ERROR unable to find requested modpack file ${FTB_SERVER_MOD}"
|
if isURL "${srv_modpack}"; then
|
||||||
exit 2
|
log "Downloading modpack from ${srv_modpack}..."
|
||||||
|
if ! srv_modpack=$(get -o /data --output-filename --skip-existing "${srv_modpack}"); then
|
||||||
|
log "ERROR: failed to download modpack"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
if [[ "${srv_modpack:0:5}" == "data/" ]]; then
|
||||||
|
# Prepend with "/"
|
||||||
|
srv_modpack="/${srv_modpack}"
|
||||||
|
fi
|
||||||
|
if [[ ! "${srv_modpack:0:1}" == "/" ]]; then
|
||||||
|
# If not an absolute path, assume file is in "/data"
|
||||||
|
srv_modpack=/data/${srv_modpack}
|
||||||
|
fi
|
||||||
|
if [[ ! -f "${srv_modpack}" ]]; then
|
||||||
|
log "FTB server modpack ${srv_modpack} not found."
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
if [[ ! "${srv_modpack: -4}" == ".zip" ]]; then
|
||||||
|
log "FTB server modpack ${srv_modpack} is not a zip archive."
|
||||||
|
log "Please set FTB_SERVER_MOD to a file with a .zip extension."
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
FTB_SERVER_MOD=${srv_modpack}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ! isTrue "${USE_MODPACK_START_SCRIPT:-true}"; then
|
||||||
|
downloadModpack
|
||||||
|
|
||||||
needsInstall=true
|
needsInstall=true
|
||||||
installMarker=/data/.curseforge-installed
|
installMarker=/data/.curseforge-installed
|
||||||
@@ -132,31 +158,8 @@ fi
|
|||||||
# also check for the start script rather than just the folder
|
# also check for the start script rather than just the folder
|
||||||
# this allows saving just the world separate from the rest of the data directory
|
# this allows saving just the world separate from the rest of the data directory
|
||||||
if [[ $startScriptCount = 0 ]]; then
|
if [[ $startScriptCount = 0 ]]; then
|
||||||
|
downloadModpack
|
||||||
srv_modpack=${FTB_SERVER_MOD}
|
srv_modpack=${FTB_SERVER_MOD}
|
||||||
if isURL "${srv_modpack}"; then
|
|
||||||
log "Downloading modpack from ${srv_modpack}..."
|
|
||||||
if ! srv_modpack=$(get -o /data --output-filename --skip-existing "${srv_modpack}"); then
|
|
||||||
log "ERROR: failed to download modpack"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if [[ "${srv_modpack:0:5}" == "data/" ]]; then
|
|
||||||
# Prepend with "/"
|
|
||||||
srv_modpack="/${srv_modpack}"
|
|
||||||
fi
|
|
||||||
if [[ ! "${srv_modpack:0:1}" == "/" ]]; then
|
|
||||||
# If not an absolute path, assume file is in "/data"
|
|
||||||
srv_modpack=/data/${srv_modpack}
|
|
||||||
fi
|
|
||||||
if [[ ! -f "${srv_modpack}" ]]; then
|
|
||||||
log "FTB server modpack ${srv_modpack} not found."
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
if [[ ! "${srv_modpack: -4}" == ".zip" ]]; then
|
|
||||||
log "FTB server modpack ${srv_modpack} is not a zip archive."
|
|
||||||
log "Please set FTB_SERVER_MOD to a file with a .zip extension."
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
log "Unpacking FTB server modpack ${srv_modpack} ..."
|
log "Unpacking FTB server modpack ${srv_modpack} ..."
|
||||||
mkdir -p "${FTB_BASE_DIR}"
|
mkdir -p "${FTB_BASE_DIR}"
|
||||||
|
|||||||
Reference in New Issue
Block a user