From 5617936f10564cf70fc0ede69788ea9be3ae369e Mon Sep 17 00:00:00 2001 From: Geoff Bourne Date: Mon, 9 May 2016 19:28:25 -0500 Subject: [PATCH] Pre-compute the Bukkit/Spigot download URLs For #77 --- minecraft-server/Dockerfile | 2 ++ minecraft-server/get-mcadmin-versions.sh | 13 +++++++++++++ minecraft-server/start-minecraft.sh | 14 +++++--------- 3 files changed, 20 insertions(+), 9 deletions(-) create mode 100755 minecraft-server/get-mcadmin-versions.sh diff --git a/minecraft-server/Dockerfile b/minecraft-server/Dockerfile index 5b827eef..3f3393b1 100644 --- a/minecraft-server/Dockerfile +++ b/minecraft-server/Dockerfile @@ -24,6 +24,8 @@ RUN useradd -M -s /bin/false --uid 1000 minecraft \ EXPOSE 25565 EXPOSE 25575 +COPY get-mcadmin-versions.sh /get-mcadmin-versions +RUN /get-mcadmin-versions https://mcadmin.net/ COPY start.sh /start COPY start-minecraft.sh /start-minecraft diff --git a/minecraft-server/get-mcadmin-versions.sh b/minecraft-server/get-mcadmin-versions.sh new file mode 100755 index 00000000..f4ca7ba4 --- /dev/null +++ b/minecraft-server/get-mcadmin-versions.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +if [ $# -lt 1 ]; then + echo Missing arg: URL + exit 1 +fi + +cd /tmp +wget -O mcadmin-versions.jar https://bintray.com/itzgeoff/artifacts/download_file?file_path=me%2Fitzg%2Fmcadmin-versions%2F1.1.0%2Fmcadmin-versions-1.1.0.jar +wget http://central.maven.org/maven2/org/jsoup/jsoup/1.9.1/jsoup-1.9.1.jar + +java -jar mcadmin-versions.jar $1 > /tmp/mcadmin-versions.db +rm *.jar diff --git a/minecraft-server/start-minecraft.sh b/minecraft-server/start-minecraft.sh index 24bf5654..d9d65ff2 100755 --- a/minecraft-server/start-minecraft.sh +++ b/minecraft-server/start-minecraft.sh @@ -50,22 +50,18 @@ function buildSpigotFromSource { } function downloadSpigot { + local match case "$TYPE" in *BUKKIT|*bukkit) - match="Craftbukkit $VANILLA_VERSION" + match="Craftbukkit" + ;; *) - match="Spigot $VANILLA_VERSION" + match="Spigot" ;; esac - curl -o /tmp/versions -sSL https://getspigot.org/api/getversions - status=$? - if [ $status != 0 ]; then - echo "ERROR: failed to access Spigot versions (curl error code was $status)" - exit 3 - fi - downloadUrl=$(cat /tmp/versions | jq -r ".[] | select(.version == \"$match\") | .downloadUrl") + downloadUrl=$(awk -F:: "\$1 == \"${match}\" && \$2 == \"${VANILLA_VERSION}\" {print \$3}" /tmp/mcadmin-versions.db) if [[ -n $downloadUrl ]]; then echo "Downloading $match" wget -q -O $SERVER "$downloadUrl"