#!/bin/bash
#
# bongosurfer - Startskript fuer Bongosurfer
#
# Copyright (C) 2004 - 2008 Pascal Pollet <pascal@bongosoft.de>
# http://www.bongosoft.de/
#
# This package is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; version 2 dated June, 1991. This package is
# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.  See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this package; if not, write to the Free Software Foundation, Inc.,
# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
##############################################################################

BONGO_VERSION="2.0.9-uk-1"

PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:$PATH"

# Default Standardpfade
BONGO_JAR="/usr/share/bongosurfer/jar/bongoSurfer.jar"
LOOKS_JAR="/usr/share/bongosurfer/lib/looks-2.1.4.jar"
FORMS_JAR="/usr/share/bongosurfer/lib/forms-1.2.0.jar"
JDIC_JAR="/usr/share/bongosurfer/lib/jdic-20060613.jar"

# Erst die Distributionen, dann nochmal die Standardpfade - falls verhanden

# Standardpfade fuer Debian
if [ -e "/usr/share/java/bongoSurfer.jar" ]; then
    BONGO_JAR="/usr/share/java/bongoSurfer.jar"
fi
if [ -e "/usr/share/java/looks.jar" ]; then
    LOOKS_JAR="/usr/share/java/looks.jar"
fi

# Standardpfade fuer SuSE (packman)
if [ -e "/usr/share/bongosurfer/jar/bongoSurfer.jar" ]; then
    BONGO_JAR="/usr/share/bongosurfer/jar/bongoSurfer.jar"
fi
if [ -e "/usr/share/java/looks2.jar" ]; then
    LOOKS_JAR="/usr/share/java/looks2.jar"
fi

# Standardpfade Debian + SuSE
if [ -e "/usr/share/java/forms.jar" ]; then
    FORMS_JAR="/usr/share/java/forms.jar"
fi
if [ -e "/usr/share/java/jdic.jar" ]; then
    JDIC_JAR="/usr/share/java/jdic.jar"
fi

# nochmal Standardpfade, falls distributionsspezifische Pfade 
# nicht benutzt werden sollen (z.B. tar.gz-Installationen)!
if [ -e "/usr/share/bongosurfer/jar/bongoSurfer.jar" ]; then
    BONGO_JAR="/usr/share/bongosurfer/jar/bongoSurfer.jar"
fi
if [ -e "/usr/share/bongosurfer/lib/looks-2.1.4.jar" ]; then
    LOOKS_JAR="/usr/share/bongosurfer/lib/looks-2.1.4.jar"
fi
if [ -e "/usr/share/bongosurfer/lib/forms-1.2.0.jar" ]; then
    FORMS_JAR="/usr/share/bongosurfer/lib/forms-1.2.0.jar"
fi
if [ -e "/usr/share/bongosurfer/lib/jdic-20060613.jar" ]; then
    JDIC_JAR="/usr/share/bongosurfer/lib/jdic-20060613.jar"
fi

# Erstmal kein Java-Kommando setzen!
JAVA_CMD=""
JAVA_CONF="/etc/bongosurfer/java.conf"

# Init-Provider nach Home kopieren
INIT_ISP_CONF="/etc/bongosurfer/init-isp.conf"
INIT_ISP_HOME_DIR="${HOME}/.BongoSurfer"
INIT_ISP_HOME_CONF="${INIT_ISP_HOME_DIR}/Eigene-Tarife.txt"

echo "BongoSurfer ${BONGO_VERSION} wird initialisiert ..."

if [ `id -u` = 0 ]; then
    echo "BongoSurfer kann von root nicht gestartet werden - Abbruch!"
    exit 1
fi

if which uname > /dev/null; then
    ARCHITEKTUR=`uname -m 2>/dev/null`
    if test -n "${ARCHITEKTUR}"; then
        echo "Info: Architektur ${ARCHITEKTUR}"
    fi
fi

if [ ! -d "${INIT_ISP_HOME_DIR}" ]; then
    echo -n "Info: erstelle ${INIT_ISP_HOME_DIR} ... "
    mkdir -p "${INIT_ISP_HOME_DIR}" && echo "OK" || echo "Fehler!"
fi

if [ -d "${INIT_ISP_HOME_DIR}" ]; then
    if [ ! -f "${INIT_ISP_HOME_CONF}" ]; then
	if [ -f "${INIT_ISP_CONF}" ]; then
    	    echo -n "Info: kopiere Init-Provider aus System-Vorlage ... "
    	    cp "${INIT_ISP_CONF}" "${INIT_ISP_HOME_CONF}" && echo "OK" || echo "Fehler!"
	fi
    fi
fi

if [ -f /etc/SuSE-release ]; then
    echo "Info: /etc/SuSE-release gefunden:"
    cat /etc/SuSE-release
fi

if [ -f /etc/debian_version ]; then
    echo "Info: /etc/debian_version gefunden:"
    cat /etc/debian_version
fi

if [ -f /etc/alternatives/java ]; then
    echo "Info: /etc/alternatives/java gefunden:"
    ls -l /etc/alternatives/java
fi

if [ -r "${JAVA_CONF}" ]; then
    . "${JAVA_CONF}"
fi

if test -n "${JAVA_CMD}"; then
    echo "Info: Java-Kommando vom Superuser gesetzt: \"${JAVA_CMD}\""
else
    if ! which java > /dev/null; then
	echo "Fehler: keine korrekte Java-Installation gefunden - Abbruch!"
	echo "Hinweis: bitte /usr/share/doc/bongosurfer/FAQ-Java.txt lesen."
	exit 1
    fi
    JAVA_CMD=`which java`
fi

if [ ! -x "${JAVA_CMD}" ]; then
    echo "Fehler: ${JAVA_CMD} ist nicht ausfuehrbar - Abbruch!"
    exit 1
fi

echo "Info: Java-Berechtigung:"
ls -l "${JAVA_CMD}"

# Die Option -version habe wohl alle Java-Versionen ...
"${JAVA_CMD}" -version

BONGO_SURFER_ZEIT_ZONE=""
if [ -e "${INIT_ISP_HOME_DIR}/BongoSurfer.konf" ]; then
    ZEITZONE=`grep '^Zeitzone=' "${INIT_ISP_HOME_DIR}/BongoSurfer.konf" | sed 's#Zeitzone=##' 2>/dev/null`
    if test -n "${ZEITZONE}"; then
	BONGO_SURFER_ZEIT_ZONE="-Duser.timezone=${ZEITZONE}"
	echo "Info: Zeitzone vom User gesetzt: ${ZEITZONE}"
    else
	BONGO_SURFER_ZEIT_ZONE="-Duser.timezone=Europe/Berlin"
	echo "Info: Default-Zeitzone gesetzt: Europe/Berlin"
    fi
fi

# Classpath zusammenbauen
BONGO_CLASS_PATH="${BONGO_JAR}"

# Checks mit -e, weil es auch Links sein koennen!
if [ -e "${FORMS_JAR}" ]; then
    BONGO_CLASS_PATH="${BONGO_CLASS_PATH}:${FORMS_JAR}"
fi
if [ -e "${LOOKS_JAR}" ]; then
    BONGO_CLASS_PATH="${BONGO_CLASS_PATH}:${LOOKS_JAR}"
fi
if [ -e "${JDIC_JAR}" ]; then
    BONGO_CLASS_PATH="${BONGO_CLASS_PATH}:${JDIC_JAR}"
fi

# check libtray.so and set java.library.path
BONGO_LIB_TRAY=""

# Erst die Distributionen, dann den Standardpfad - falls verhanden

# Debian
if [ -e /usr/lib/jni/libtray.so ]; then
    BONGO_LIB_TRAY="-Djava.library.path=/usr/lib/jni"
    echo "Info: setze java.library.path = /usr/lib/jni"
fi

# SuSE
if [ -e /usr/lib/jdic/libtray.so ]; then
    BONGO_LIB_TRAY="-Djava.library.path=/usr/lib/jdic"
    echo "Info: setze java.library.path = /usr/lib/jdic"
fi

# Standard
if [ -e /usr/share/bongosurfer/lib/libtray.so ]; then
    BONGO_LIB_TRAY="-Djava.library.path=/usr/share/bongosurfer/lib"
    echo "Info: setze java.library.path = /usr/share/bongosurfer/lib"
fi

# Info TrayIcon 
if test -z "${BONGO_LIB_TRAY}"; then
    echo "Info: TrayIcon kann leider nicht verwendet werden."
fi

# Bongosurfer starten
if [ -f "${BONGO_JAR}" ]; then
    echo "Info: BongoSurfer wird sofort gestartet ..."
    
    # Beispiel mit build-classpath z.B. fuer OpenSuSE
    # Aber muss das bei SuSE wirklich so gemacht werden?
    # Hinweis fuer andere Paketierer: vielleicht besser oben die
    # Pfade anpassen?
    #
    # exec ${JAVA_CMD} -cp `build-classpath forms looks2`:${BONGO_JAR} \
    # ${BONGO_SURFER_ZEIT_ZONE} de.bongosoft.bongosurfer.Main    
    
    # build-classpath habe ich bei Debian noch nicht gefunden ...
    exec ${JAVA_CMD} -cp ${BONGO_CLASS_PATH} ${BONGO_LIB_TRAY} \
    ${BONGO_SURFER_ZEIT_ZONE} de.bongosoft.bongosurfer.Main

else
    echo "Fehler: ${BONGO_JAR} wurde nicht gefunden - Abbruch!"
    exit 1
fi

exit 0

### eof
