#!/bin/sh

## try to read light/dark theme from dbus
getTheme() {
    tuxguitarTheme="none"
    # does not work with all desktops, limited to KDE
    if [ "$XDG_CURRENT_DESKTOP" = 'KDE' ]; then
        dbusTheme=$(dbus-send --session --print-reply=literal --dest=org.freedesktop.portal.Desktop /org/freedesktop/portal/desktop org.freedesktop.portal.Settings.Read string:org.freedesktop.appearance string:color-scheme 2>/dev/null)
        [ -n "$( echo $dbusTheme | sed -n '/uint32 2/p')" ] && tuxguitarTheme="light"
        [ -n "$( echo $dbusTheme | sed -n '/uint32 1/p')" ] && tuxguitarTheme="dark"
    fi
    echo $tuxguitarTheme
}

# system dependencies
swt_guess_()
{
    t="/usr/lib/eclipse/plugins/org.eclipse.swt.gtk.linux.*.jar"
    [ -r "$t" ] && f="$t"
    t="/etc/alternatives/swt.jar"
    [ -r "$t" ] && f="$t"
    t="/usr/share/java/swt.jar"
    [ -r "$t" ] && f="$t"
    t="/usr/lib/java/swt.jar"
    [ -r "$t" ] && f="$t"
    t="/usr/lib64/java/swt.jar"
    [ -r "$t" ] && f="$t"
#   file -L "$f" >/dev/null 2>&1 || f=""
    echo "$f"
}

itext_pdf_guess_()
{
    t="/usr/share/java/itext.jar"
    [ -r "$t" ] && f="$t"
    t="/usr/share/java/itext-pdf.jar"
    [ -r "$t" ] && f="$t"
    t="/usr/share/java/itextpdf/itextpdf.jar"
    [ -r "$t" ] && f="$t"
#   file -L "$f" >/dev/null 2>&1 || f=""
    echo "$f"
}

itext_xmlworker_guess_()
{
    t="/usr/share/java/xmlworker.jar"
    [ -r "$t" ] && f="$t"
    t="/usr/share/java/itext-xmlworker.jar"
    [ -r "$t" ] && f="$t"
    t="/usr/share/java/itextpdf/xmlworker.jar"
    [ -r "$t" ] && f="$t"
#   file -L "$f" >/dev/null 2>&1 || f=""
    echo "$f"
}

##JAVA
JAVA=`which java`
##LIBRARY_PATH
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib64/tuxguitar
##CLASSPATH
PACKAGE=${PACKAGE:=tuxguitar}
PACKAGE_HOME=${PACKAGE_HOME:=/usr/share/java/${PACKAGE}/}
t="${PACKAGE_HOME}/${PACKAGE}.jar"
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-alsa.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-ascii.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-awt-graphics.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-browser-ftp.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-community.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-compat.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-converter.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-debug-helper.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-editor-utils.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-fluidsynth.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-gervill.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-gm-settings.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-gm-utils.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-gpx.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-gtp.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-gtp-ui.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-image.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-jack.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-jack-ui.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-jsa.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-lib.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-lilypond.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-lilypond-ui.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-midi.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-midi-ui.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-musicxml.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-pdf.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-pdf-ui.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-ptb.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-svg.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-synth.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-synth-export.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-synth-gervill.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-synth-lv2.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-synth-vst.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-tef.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-tray.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-tuner.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-ui-toolkit.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-ui-toolkit-swt.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/${PACKAGE}-viewer.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=${PACKAGE_HOME}/gervill.jar
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=$(itext_pdf_guess_)
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=$(itext_xmlworker_guess_)
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t=$(swt_guess_)
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t="/usr/share/java/commons-compress.jar"
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
t="/usr/share/java/commons-io.jar"
[ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
##MAINCLASS
MAINCLASS=app.tuxguitar.app.TGMainSingleton
## SHAREPATH
SHAREPATH=/usr/share/tuxguitar
##EXPORT VARS
export CLASSPATH
export LD_LIBRARY_PATH
##Avoid problems with Accelerated Compositing mode in SWT/WebKitGTK
export WEBKIT_DISABLE_COMPOSITING_MODE=1
##LAUNCH
${JAVA} -cp :${CLASSPATH} -Dtuxguitar.share.path="${SHAREPATH}/" -Djava.library.path="${LD_LIBRARY_PATH}" -Dtuxguitar.theme=$(getTheme) ${MAINCLASS} "$@"
