#!/bin/bash

basedir=/usr
libdir=${basedir}/lib/x86_64-linux-gnu
libexecdir=${basedir}/lib/x86_64-linux-gnu
datadir=${basedir}/share
dcvclient_bin="${libexecdir}/workspacesclient/dcv/dcvclientbin"

export LD_LIBRARY_PATH="${libdir}/workspacesclient/dcv:${libdir}:${LD_LIBRARY_PATH}"
export XDG_DATA_DIRS="${datadir}:${XDG_DATA_DIRS}:/usr/share:/usr/local/share"
export GIO_EXTRA_MODULES="${libdir}/workspacesclient/dcv/gio/modules"
export DCV_DATA_DIR="${datadir}"
export DCV_SASL_PLUGIN_DIR="${libdir}/workspacesclient/dcv/sasl2"
export GDK_PIXBUF_MODULE_FILE="${libdir}/workspacesclient/dcv/gdk-pixbuf-2.0/2.10.0/loaders.cache"
export GST_PLUGIN_SCANNER="${libdir}/workspacesclient/dcv/gst-plugin-scanner"
export GST_PLUGIN_SYSTEM_PATH="${libdir}/workspacesclient/dcv/gstreamer-1.0"

case "$1" in
    --gdb)
        shift
        export G_DEBUG=fatal-critical
        gdb -ex run --args "${dcvclient_bin}" "$@"
        _exit=$?
        ;;
    --valgrind)
        shift
        export G_DEBUG=resident-modules
        valgrind --tool=memcheck --leak-check=full --leak-resolution=high --num-callers=20 --log-file=vgdump "${dcvclient_bin}" "$@"
        _exit=$?
        ;;
    --sanitizer)
        shift
        export ASAN_OPTIONS="log_path=/tmp/dcvclient-asan.log:fast_unwind_on_malloc=0"
        "${dcvclient_bin}" "$@"
        _exit=$?
        ;;
    *)
        "${dcvclient_bin}" "$@"
        _exit=$?
        ;;
esac

exit ${_exit}

# --------------------------------------------------------------------------- #
# ex: set ts=4 sw=4 et syntax=sh :
# --------------------------------------------------------------------------- #
