#!/bin/sh
set -eu
appdir=${APPDIR:-$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)}
unset ELECTRON_RUN_AS_NODE
library_path="$appdir/usr/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
export XDG_DATA_DIRS="$appdir/usr/share:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
export GSETTINGS_SCHEMA_DIR="$appdir/usr/share/glib-2.0/schemas"
export GTK_EXE_PREFIX="$appdir/usr"
export GTK_DATA_PREFIX="$appdir/usr"
export GTK_PATH="$appdir/usr/lib/gtk-3.0"
export GIO_MODULE_DIR="$appdir/usr/lib/gio/modules"
export XANDRIA_PDFIUM_LIB_PATH="$appdir/resources/xandria-client-runtime/native/libpdfium.so"
export XANDRIA_ARCHIVE_HELPER_PATH="$appdir/resources/xandria-client-runtime/native/7zz"
unset GIO_EXTRA_MODULES
if [ -x "$appdir/usr/bin/gdk-pixbuf-query-loaders" ]; then
    cache_key=$(printf '%s' "$appdir" | sha256sum)
    cache_key=${cache_key%% *}
    runtime_cache="${XDG_CACHE_HOME:-$HOME/.cache}/xandria/appimage-runtime/$cache_key"
    (umask 077; mkdir -p "$runtime_cache")
    export GDK_PIXBUF_MODULE_FILE="$runtime_cache/loaders.cache"
    export GTK_IM_MODULE_FILE="$runtime_cache/immodules.cache"
    if [ ! -s "$GDK_PIXBUF_MODULE_FILE" ]; then
        (umask 077; LD_LIBRARY_PATH="$library_path" "$appdir/usr/bin/gdk-pixbuf-query-loaders" "$appdir"/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/*.so > "$GDK_PIXBUF_MODULE_FILE.tmp.$$")
        mv "$GDK_PIXBUF_MODULE_FILE.tmp.$$" "$GDK_PIXBUF_MODULE_FILE"
    fi
    if [ ! -s "$GTK_IM_MODULE_FILE" ]; then
        (umask 077; LD_LIBRARY_PATH="$library_path" "$appdir/usr/bin/gtk-query-immodules-3.0" "$appdir"/usr/lib/gtk-3.0/3.0.0/immodules/*.so > "$GTK_IM_MODULE_FILE.tmp.$$")
        mv "$GTK_IM_MODULE_FILE.tmp.$$" "$GTK_IM_MODULE_FILE"
    fi
fi
export LD_LIBRARY_PATH="$library_path"
exec "$appdir/xandria" "$@"
