#!/bin/sh

# Helper script to set up the CLASSPATH for qftest, qfclient and the
# qftest java wrapper

# must be sourced with .
# optional argument -client

#----------------------------------------------------------------------
# Jars to use
#----------------------------------------------------------------------
# qftest jars, patch must be last
qftestjars="qflib qflog qfdemo qfshared qftest patch"
qfsutjars="qflib qfshared qfsut patch"
# libjars for server and client
libjars="bsf groovy-all jline jython png pngencoder"
# libjars for server only
if [ "$client" = "0" ]; then
    libjars="$libjars asm batik commons jcommon jfreechart jide-oss jsch jxl looks netty opentelemetry truezip"
fi

#----------------------------------------------------------------------
# Lagacy support
#----------------------------------------------------------------------
if [ -f "$topdir/fixenv" ]; then
    # there's an old fixenv. read it, but preserve PATH and CLASSPATH
    CPTMP=$CLASSPATH
    PTMP=$PATH
    . "$topdir/fixenv"
    CLASSPATH=$CPTMP; export CLASSPATH
    PATH=$PTMP; export PATH
fi

if [ -z "$clientlib" -a -d "$topdir/clientlib" ]; then
    clientlib="$topdir/clientlib"
fi

if [ -n "$QFTEST_DEBUG" ]; then
    echo qftestjars: $qftestjars
    echo qfsutjars: $qfsutjars
    echo libjars: $libjars
fi

# bindir, basedir and topdir are set
libdir="$basedir/lib"
qflibdir="$basedir/qflib"
if [ -n "$QFTEST_DEBUG" ]; then
    echo libdir: $libdir
    echo qflibdir: $qflibdir
fi

#----------------------------------------------------------------------
# Path separator
#----------------------------------------------------------------------
if [ -z "$WINDIR" ]; then
    PS=:
else
    PS=";"
fi

#----------------------------------------------------------------------
# Fit the clientlib jars between the qftest jars and the CLASSPATH
# -- legacy, no longer used --
#----------------------------------------------------------------------
if [ -n "$clientlib" ]; then
    for jar in $clientlib/*.jar; do
        if [ -f $jar ]; then
            CLASSPATH=$jar$PS$CLASSPATH
        fi
    done
fi

#----------------------------------------------------------------------
# Put the lib jars after the qf jars in the classpath
#----------------------------------------------------------------------
for jar in $libjars; do
    if [ -f "$libdir/$jar.jar" ]; then
        CLASSPATH="$libdir/$jar.jar$PS$CLASSPATH"
    fi
done

#----------------------------------------------------------------------
# Put the qf jars first in the classpath
#----------------------------------------------------------------------
if [ "$client" = "0" ]; then
    for jar in $qftestjars; do
        if [ -f "$qflibdir/${jar}.jar" ]; then
            CLASSPATH="$qflibdir/${jar}.jar$PS$CLASSPATH"
        fi
    done
else
    for jar in $qfsutjars; do
        if [ -f "$qflibdir/${jar}.jar" ]; then
            CLASSPATH="$qflibdir/${jar}.jar$PS$CLASSPATH"
        fi
    done
fi

#----------------------------------------------------------------------
# qftest Development support
#----------------------------------------------------------------------
if [ -n "$QFTEST_DEV_CLASSPATH2" ]; then
    CLASSPATH="$QFTEST_DEV_CLASSPATH2$PS$CLASSPATH"
fi
