Allow ICON to reference a local file (#1466)

This commit is contained in:
Geoff Bourne
2022-04-10 11:39:58 -05:00
committed by GitHub
parent 97fe6b1f14
commit 8ef3fe199f
9 changed files with 56 additions and 7 deletions

View File

@@ -7,20 +7,33 @@ isDebugging && set -x
if [ -n "$ICON" ]; then
if [ ! -e server-icon.png ] || isTrue "${OVERRIDE_ICON}"; then
log "Using server icon from $ICON..."
# Not sure what it is yet...call it "img"
if ! get -o /tmp/icon.img "$ICON"; then
log "ERROR: failed to download icon from $ICON"
if isURL "$ICON"; then
# Not sure what it is yet...call it "img"
if ! get -o /tmp/icon.img "$ICON"; then
log "ERROR: failed to download icon from $ICON"
exit 1
fi
ICON=/tmp/icon.img
iconSrc="url"
elif [ -f "$ICON" ]; then
iconSrc="file"
else
log "ERROR: $ICON does not appear to be a URL or existing file"
exit 1
fi
read -r -a specs < <(identify /tmp/icon.img | awk 'NR == 1 { print $2, $3 }')
read -r -a specs < <(identify "$ICON" | awk 'NR == 1 { print $2, $3 }')
if [ "${specs[0]} ${specs[1]}" = "PNG 64x64" ]; then
mv /tmp/icon.img /data/server-icon.png
if [ $iconSrc = url ]; then
mv -f /tmp/icon.img /data/server-icon.png
else
cp -f "$ICON" /data/server-icon.png
fi
elif [ "${specs[0]}" = GIF ]; then
log "Converting GIF image to 64x64 PNG..."
convert "/tmp/icon.img[0]" -resize 64x64! /data/server-icon.png
convert "$ICON"[0] -resize 64x64! /data/server-icon.png
else
log "Converting image to 64x64 PNG..."
convert /tmp/icon.img -resize 64x64! /data/server-icon.png
convert "$ICON" -resize 64x64! /data/server-icon.png
fi
fi
fi

View File

@@ -0,0 +1,17 @@
version: "3"
services:
mc:
image: ${IMAGE_TO_TEST:-itzg/minecraft-server}
environment:
EULA: "true"
SETUP_ONLY: "true"
ICON: /extra/4737386_minecraft_squircle_icon_64x64.png
# the following are only used to speed up test execution
TYPE: CUSTOM
CUSTOM_SERVER: /servers/fake.jar
VERSION: 1.18.1
volumes:
- ./data:/data
- ./extra:/extra
- ./fake.jar:/servers/fake.jar

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -0,0 +1 @@
mc-image-helper assert fileExists server-icon.png

View File

@@ -0,0 +1,17 @@
version: "3"
services:
mc:
image: ${IMAGE_TO_TEST:-itzg/minecraft-server}
environment:
EULA: "true"
SETUP_ONLY: "true"
ICON: /extra/4737386_minecraft_squircle_icon.png
# the following are only used to speed up test execution
TYPE: CUSTOM
CUSTOM_SERVER: /servers/fake.jar
VERSION: 1.18.1
volumes:
- ./data:/data
- ./extra:/extra
- ./fake.jar:/servers/fake.jar

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1 @@
mc-image-helper assert fileExists server-icon.png