1
1
ServerPackCreator/create-appimage.sh

146 lines
3.8 KiB
Bash

#!/bin/bash
SOURCE=${BASH_SOURCE[0]}
while [ -L "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
DIR=$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd )
SOURCE=$(readlink "$SOURCE")
[[ $SOURCE != /* ]] && SOURCE=$DIR/$SOURCE # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
DIR=$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd )
cd "${DIR}" >/dev/null 2>&1 || exit
VERSION=$1
VERSION="${VERSION:-dev}"
YEAR=$(date +%Y)
JAVA_HOME="${JAVA_HOME:-/usr/lib/jvm/java-21-openjdk-amd64}"
BASE=appimage
INPUT=${BASE}/input
DEST=${BASE}/dist
TEMP=${BASE}/temp
APPDIR=${BASE}/ServerPackCreator.AppDir
rm -rf ${BASE}/*
mkdir -p \
${INPUT} \
${DEST} \
${TEMP} \
${APPDIR}/usr/share/applications \
${APPDIR}/usr/icons/hicolor/256x256/apps \
${APPDIR}/usr/icons/hicolor/512x512/apps \
${APPDIR}/usr/icons/hicolor/scalable/apps \
${APPDIR}/usr/share/applications \
${APPDIR}/usr/share/metainfo
goback() {
cd "${DIR}"
}
trap goback EXIT
cp -f \
serverpackcreator-app/build/libs/serverpackcreator-app-${VERSION}.jar \
${INPUT}/serverpackcreator.jar
#
# CREATE IMAGE
#
jpackage \
--app-version "${VERSION}" \
--name "ServerPackCreator" \
--copyright "Copyright (C) ${YEAR} Griefed" \
--description "Create server packs from Minecraft Forge, NeoForge, Fabric, Quilt or LegacyFabric modpacks." \
--vendor "Griefed" \
--icon img/icon.png \
--dest ${DEST} \
--java-options "-Dfile.encoding=UTF-8" \
--java-options "-Dlog4j2.formatMsgNoLookups=true" \
--java-options "-DServerPackCreator" \
--java-options "-Dname=ServerPackCreator" \
--java-options "-Dspring.application.name=ServerPackCreator" \
--java-options "-Dcom.apple.mrj.application.apple.menu.about.name=ServerPackCreator" \
--main-class org.springframework.boot.loader.launch.JarLauncher \
--main-jar "serverpackcreator.jar" \
--input "${INPUT}/" \
--runtime-image "${JAVA_HOME}" \
--temp "${TEMP}" \
--type "app-image" \
--verbose
#
# CREATE APPIMAGE
#
{
echo "#!/usr/bin/env xdg-open"
echo "[Desktop Entry]"
echo "Name=ServerPackCreator"
echo "Name[en]=ServerPackCreator"
echo "Comment=Create server packs from Minecraft modpacks."
echo "Exec=ServerPackCreator"
echo "Icon=ServerPackCreator"
echo "Type=Application"
echo "Categories=Utility;FileTools;Java;"
echo "StartupWMClass=org.springframework.boot.loader.launch.JarLauncher"
} >>${APPDIR}/usr/share/applications/de.griefed.ServerPackCreator.desktop
cp -rf \
${DEST}/ServerPackCreator/* \
${APPDIR}
cp -f \
misc/appdata.xml \
${APPDIR}/usr/share/metainfo/de.griefed.ServerPackCreator.appdata.xml
cp -f \
img/app_256x256.png \
${APPDIR}/usr/icons/hicolor/256x256/apps/ServerPackCreator.png
cp -f \
img/app.png \
${APPDIR}/usr/icons/hicolor/512x512/apps/ServerPackCreator.png
cp -f \
img/app.svg \
${APPDIR}/usr/icons/hicolor/scalable/apps/ServerPackCreator.svg
cd ${APPDIR}
ln -s \
bin/ServerPackCreator \
AppRun
ln -s \
usr/share/applications/de.griefed.ServerPackCreator.desktop \
de.griefed.ServerPackCreator.desktop
ln -s \
usr/icons/hicolor/512x512/apps/ServerPackCreator.png \
ServerPackCreator.png
ln -s \
usr/icons/hicolor/scalable/apps/ServerPackCreator.svg \
ServerPackCreator.svg
cd ..
wget -c https://github.com/$(wget -q https://github.com/probonopd/go-appimage/releases/expanded_assets/continuous -O - | grep "appimagetool-.*-x86_64.AppImage" | head -n 1 | cut -d '"' -f 2)
mv \
appimagetool-*.AppImage \
appimagetool.AppImage
chmod +x \
appimagetool.AppImage
export ARCH=x86_64
export PATH=./squashfs-root/usr/bin:${PATH}
export VERSION="${VERSION:-dev}"
./appimagetool.AppImage \
--standalone \
./ServerPackCreator.AppDir
ls -hat
mv \
ServerPackCreator*.AppImage \
ServerPackCreator-${VERSION}-x86_64.AppImage || echo "Move not necessary."