mirror of
https://forgejo.xatacraft.ru/Sunshine/mkxp-sunshine.git
synced 2026-08-19 13:29:54 +00:00
81 lines
3 KiB
Bash
Executable file
81 lines
3 KiB
Bash
Executable file
#!/bin/bash -eu
|
|
|
|
LINUXDEPLOY=linuxdeploy-x86_64.AppImage
|
|
APPIMAGETOOL=appimagetool-x86_64.AppImage
|
|
GDK_LOADERS_PATH=/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0
|
|
|
|
if [ $# -lt 6 ]; then
|
|
echo "usage: make-appimage.sh SOURCE_PATH CONAN_INSTALL_PATH GAME_PATH EXTRA_UNIX_CONTENT_PATH JOURNAL_FILE APPIMAGE_FILE"
|
|
exit 1
|
|
fi
|
|
|
|
source_path="$1"
|
|
conan_install_path="$2"
|
|
game_path="$3"
|
|
unix_content_path="$4"
|
|
journal_file="$5"
|
|
appimage_file="$6"
|
|
appdir="$(mktemp -d)"
|
|
|
|
function atexit {
|
|
[ -n "$appdir" ] && rm -rf "$appdir"
|
|
}
|
|
|
|
trap atexit EXIT
|
|
|
|
$LINUXDEPLOY -e "$conan_install_path/bin/oneshot" \
|
|
-l "$conan_install_path/lib/libruby.so.2.5.3" \
|
|
-l "$GDK_LOADERS_PATH/loaders/io-wmf.so" \
|
|
-l "$GDK_LOADERS_PATH/loaders/libpixbufloader-bmp.so" \
|
|
-l "$GDK_LOADERS_PATH/loaders/libpixbufloader-icns.so" \
|
|
-l "$GDK_LOADERS_PATH/loaders/libpixbufloader-jpeg.so" \
|
|
-l "$GDK_LOADERS_PATH/loaders/libpixbufloader-pnm.so" \
|
|
-l "$GDK_LOADERS_PATH/loaders/libpixbufloader-svg.so" \
|
|
-l "$GDK_LOADERS_PATH/loaders/libpixbufloader-tiff.so" \
|
|
-l "$GDK_LOADERS_PATH/loaders/libpixbufloader-xpm.so" \
|
|
-l "$GDK_LOADERS_PATH/loaders/libpixbufloader-ani.so" \
|
|
-l "$GDK_LOADERS_PATH/loaders/libpixbufloader-gif.so" \
|
|
-l "$GDK_LOADERS_PATH/loaders/libpixbufloader-ico.so" \
|
|
-l "$GDK_LOADERS_PATH/loaders/libpixbufloader-png.so" \
|
|
-l "$GDK_LOADERS_PATH/loaders/libpixbufloader-qtif.so" \
|
|
-l "$GDK_LOADERS_PATH/loaders/libpixbufloader-tga.so" \
|
|
-l "$GDK_LOADERS_PATH/loaders/libpixbufloader-xbm.so" \
|
|
-i "$source_path/assets/oneshot.png" \
|
|
-d "$source_path/assets/oneshot.desktop" \
|
|
--custom-apprun="$source_path/assets/AppRun" \
|
|
--appdir "$appdir"
|
|
|
|
# Bundle game data
|
|
cp -af "$journal_file" "$appdir/usr/bin/_______"
|
|
cp -af "$source_path/assets/journal.png" "$appdir/usr/bin/_______.png"
|
|
for dir in Audio Data Fonts Graphics Languages Wallpaper testing_saves testing_saves_postgame; do
|
|
[ -d "$game_path/$dir/" ] && rsync -a "$game_path/$dir" "$appdir/usr/bin/"
|
|
[ -d "$unix_content_path/$dir/" ] && rsync -a "$unix_content_path/$dir/" "$appdir/usr/bin/$dir/"
|
|
done
|
|
# GDK pixbuf retarget nonsense
|
|
sed "s,$GDK_LOADERS_PATH/loaders/,%RETARGET%/," \
|
|
"$GDK_LOADERS_PATH/loaders.cache" > "$appdir/usr/lib/loaders.cache"
|
|
# Delete some files
|
|
find "$appdir/usr/bin" -type f \( \
|
|
-iname '*.bmp' -o \
|
|
-iname 'thumbs.db' -o \
|
|
-iname '*.ini' -o \
|
|
-iname '*conflicted*' \) \
|
|
-delete
|
|
# copyright :(
|
|
find "$appdir/usr/bin" -type f \( -iname '*.loc' -a \! -iname 'en.loc' \) -delete
|
|
# more copyright :(
|
|
find "$appdir/usr/bin" -type d \( \
|
|
-iname 'es' -o \
|
|
-iname 'fr' -o \
|
|
-iname 'ja' -o \
|
|
-iname 'ko' -o \
|
|
-iname 'pt_BR' -o \
|
|
-iname 'zh_CN' \) \
|
|
-exec rm -rf {} +
|
|
# International fonts are now taking up space
|
|
find "$appdir/usr/bin/Fonts" -type f \! -iname 'TerminusTTF-Bold.ttf' -delete
|
|
cp -af "$conan_install_path/bin/Data/xScripts.rxdata" "$appdir/usr/bin/Data/"
|
|
|
|
# Create AppImage
|
|
ARCH=x86_64 $APPIMAGETOOL "$appdir" "$appimage_file"
|