#! /bin/sh
#@ident "$Id: tuxguitar.sh,v 1.3 2008/04/16 17:04:50 rzr Exp $"
#@Author: www.philippe.coval.online.fr -- revision: $Author: rzr $
#@Licence: LGPL
#@Description: Wrapper script for starting java application tuxguitar
###############################################################################
PACKAGE="tuxguitar"
[ ! -z $DEBUG ] && set -e
[ ! -z $DEBUG ] && set -x

#/// guess JAVA_HOME if undefined
java_guess_()
{
    d="/opt/java/"
    [ -d "$t" ] && d="$t"
    d="/usr/local/opt/java/"
    [ -d "$t" ] && d="$t"
# windows
    t="C:\\Program\ Files\\Java\\jre1.6.0_03/"
    [ -d "$t" ] && d="$t"
    t="\\Program\ Files\\Java\\jre1.6.0_03/"
    [ -d "$t" ] && d="$t"
    t="/Program\ Files/Java/jre1.6.0_03/"
    [ -d "$t" ] && d="$t"
# macosx
    t="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/"
    [ -d "$t" ] && d="$t"
# opensuse
    t="/etc/profile.d/alljava.sh"
    [ -r $t ] && . $t && echo ${JAVA_HOME} && return
    t="/usr/lib/jvm/java"
    [ -d "$t" ] && d="$t"
    t="/usr/lib64/jvm/java"
    [ -d "$t" ] && d="$t"
# mandriva
    t="/usr/lib/jvm/jre-1.6.0-sun/bin/../"
    [ -d "$t" ] && d="$t"
# gentoo
    t="/opt/sun-jdk-1.5.0.14/"
    [ -d "$t" ] && d="$t"
    t="/opt/sun-jdk-1.6.0.04/"
    [ -d "$t" ] && d="$t"
# debian
    if [ -r /etc/debian_version  ]; then
        t="/usr/lib/jvm/java-gcj/jre/bin/../../"
        [ -d "$t" ] && d="$t"
        t="/usr/lib/jvm/java-1.5.0-sun/jre/bin/../../"
        [ -d "$t" ] && d="$t"
        t="/usr/lib/jvm/java-6-sun/jre/bin/../../"
        [ -d "$t" ] && d="$t"
        t="/usr/lib/jvm/java-6-openjdk/jre/bin/../../"
        [ -d "$t" ] && d="$t"
    fi
# results
    [ -d "$d" ] && echo "$d"
}

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"
    t="/usr/lib/java/swt-gtk-3.5.1.jar"
    [ -r "$t" ] && f="$t"
    t="/usr/share/java/swt-gtk-3.4.jar"
    [ -r "$t" ] && f="$t"
    t="/usr/lib/java/swt3.2-gtk.jar"
    [ -r "$t" ] && f="$t"
    file -L "$f" >/dev/null 2>&1 || f=""
    echo "$f"
}

#/// org.eclipse.swt.SWTError: No more handles
#/// [Unknown Mozilla path (MOZILLA_FIVE_HOME not set)]
mozilla_guess_()
{
    t="/usr/lib/mozilla"
    test -r "$t/libxpcom.so" && d="$t"
    t="/usr/lib/iceape/"
    test -r "$t/libxpcom.so" && d="$t"
    t="/usr/lib/icedove/"
    test -r "$t/libxpcom.so" && d="$t"
    t="/usr/lib/firefox/"
    test -r "$t/libxpcom.so" && d="$t"
    t="/usr/lib/iceweasel"
    test -r "$t/libxpcom.so" && d="$t"
    t="/usr/lib/xulrunner"
    test -r "$t/libxpcom.so" && d="$t"
    t="/usr/lib/xulrunner-1.9"
    test -r "$t/libxpcom.so" && d="$t"
    t="/usr/lib/xulrunner-`xulrunner-1.9.1 --gre-version`"
    test -r "$t/libxpcom.so" && d="$t"
    t="/usr/lib/xulrunner-1.9.1"
    test -r "$t/libxpcom.so" && d="$t"
    t="/usr/lib/xulrunner-1.9.2"
    test -r "$t/libxpcom.so" && d="$t"
    echo "$d"
}

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"
}


#
env_()
{
    t="/etc/default/${PACKAGE}/env.sh"
    [ -r "$t" ] && . "$t"

    t="/etc/${PACKAGE}/env.sh"
    [ -r "$t" ] && . "$t"

# java
    [ -z ${JAVA_HOME} ] && t=$(java_guess_) && [ -d "$t" ] && JAVA_HOME="$t"
    if [ -d "${JAVA_HOME}/jre/bin/java" ] ; then
        export JAVA_HOME
        JAVA="${JAVA:=${JAVA_HOME}/jre/bin/java}"
        [ -x ${JAVA} ] && export JAVA
    else
        JAVA=${JAVA:=java}
        export JAVA
    fi

# mozilla
    if [ -z $MOZILLA_FIVE_HOME ]; then
	MOZILLA_FIVE_HOME=/usr/lib64/firefox
	[ ! -d ${MOZILLA_FIVE_HOME} ] && MOZILLA_FIVE_HOME=/usr/lib64/mozilla
	[ ! -d ${MOZILLA_FIVE_HOME} ] && MOZILLA_FIVE_HOME=/usr/lib64/iceweasel
    fi

    [ ! -z ${DEBUG} ] && echo "# MOZILLA_FIVE_HOME=${MOZILLA_FIVE_HOME}"
    [ ! -z ${DEBUG} ] && echo "# JAVA_HOME=${JAVA_HOME}"}
}


tuxguitar_()
{
    local PACKAGE=${PACKAGE:=tuxguitar}
    local PACKAGE_HOME=${PACKAGE_HOME:=/usr/share/java/${PACKAGE}/}
#   local PACKAGE_MAIN=${PACKAGE_MAIN:=org.herac.tuxguitar.gui.TGMain}
    local PACKAGE_MAIN=${PACKAGE_MAIN:=org.herac.tuxguitar.app.TGMain}
    local PACKAGE_LIB=${PACKAGE_LIB:=/usr/lib64/tuxguitar}
# java env
    JAVA=${JAVA:=java}
    CLASSPATH=${CLASSPATH}
    t="${PACKAGE_HOME}"
    [ -d "$t" ] && CLASSPATH=${CLASSPATH}:$t
    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}-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}-midi.jar
    [ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
    t=${PACKAGE_HOME}/${PACKAGE}-musicxml.jar
    [ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
    t=${PACKAGE_HOME}/${PACKAGE}-oss.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=$(itext_pdf_guess_)
    [ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t
    t=$(itext_xmlworker_guess_)
    [ -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}-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=$(swt_guess_)
    [ -r "$t" ] && CLASSPATH=${CLASSPATH}:$t

    JAVA_FLAGS=${JAVA_FLAGS:="-Xms128m -Xmx512m"}
    JAVA_FLAGS=" ${JAVA_FLAGS} \
        -Djava.library.path=${PACKAGE_LIB} \
        -D${PACKAGE}.share.path=/usr/share/${PACKAGE} \
        -cp ${CLASSPATH}:${PACKAGE_CLASSPATH} \
        "
    local arg=""
    [ -z "$1" ] && arg="/usr/share/tuxguitar/tuxguitar.tg"
# run java
    [ ! -z ${DEBUG} ] && echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}"
    [ ! -z ${DEBUG} ] && ${JAVA} -version
    [ ! -z ${DEBUG} ] && ${JAVA} ${JAVA_FLAGS} ${PACKAGE_MAIN} --version

    SWT_GTK3=0
    export SWT_GTK3

    ${JAVA} ${JAVA_FLAGS} ${PACKAGE_MAIN} $arg "$@"
}

# main

env_
tuxguitar_ "$@"

#eof
