146 lines
3.8 KiB
Bash
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." |