#!/bin/sh -e

name=$(basename $0)
bindir=/usr/lib/$name

wine32=/opt/$name/bin/wine
wine64=/opt/$name/bin/wine64

if test -x $wine32 -a "$WINEARCH" != "win64"; then
    wine=$wine32
elif test -x $wine64; then
    wine=$wine64
    if [ "$(dpkg --print-architecture)" = "amd64" -a "$(dpkg --print-foreign-architectures | grep -cx "i386")" -ne 1 ]; then
        echo "it looks like multiarch needs to be enabled.  as root, please"
        echo "execute \"dpkg --add-architecture i386 && apt-get update &&"
        echo "apt-get install $(echo $name | sed s/wine/wine32/)\""
    fi
else
    echo "error: unable to find wine executable.  this shouldn't happen."
    exit 1
fi

if test -z "$WINEPREFIX"; then
    if test "$wine" = "$wine64"; then
        wineprefix=$HOME/.wine64
    else
        wineprefix=$HOME/.wine
    fi
else
    wineprefix=$WINEPREFIX
fi

if test -z "$WINELOADER"; then
    wineloader=$wine
else
    wineloader=$WINELOADER
fi

if test -z "$WINEDEBUG"; then
    winedebug=-all
else
    winedebug=$WINEDEBUG
fi

get_arch=`arch`
if [ $get_arch = "x86_64" ];then
    HERE=/opt/deepinwine/runtime-i386
    winepreloader=/opt/$name/bin/wine-preloader

    export LD_LIBRARY_PATH="${HERE}/usr/lib:${LD_LIBRARY_PATH}"
    export LD_LIBRARY_PATH="${HERE}/lib:${LD_LIBRARY_PATH}"
    export LD_LIBRARY_PATH="${HERE}/usr/lib/i386-linux-gnu:${LD_LIBRARY_PATH}"
    export LD_LIBRARY_PATH="${HERE}/lib/i386-linux-gnu:${LD_LIBRARY_PATH}"
    export LD_LIBRARY_PATH="${HERE}/usr/lib/x11:${LD_LIBRARY_PATH}"
    
    #PATH
    export PATH="${HERE}/bin:${HERE}/usr/bin:${PATH}"
    
    #Sound Library
    export LD_LIBRARY_PATH="${HERE}/usr/lib/i386-linux-gnu/pulseaudio:${LD_LIBRARY_PATH}"
    export LD_LIBRARY_PATH="${HERE}/usr/lib/i386-linux-gnu/alsa-lib:${LD_LIBRARY_PATH}"
    #export LADSPA_PATH="${HERE}/usr/lib/ladspa:${LADSPA_PATH}"
    #export AO_PLUGIN_PATH="${HERE}/usr/lib/ao/plugins-4:${AO_PLUGIN_PATH}"
    
    # For mpg123
    #export LD_LIBRARY_PATH="${HERE}/usr/lib/mpg123:${LD_LIBRARY_PATH}"

    # for libomxil-bellagio
    #export BELLAGIO_SEARCH_PATH="${HERE}/usr/lib/bellagio:${HERE}/usr/lib/omxloaders:${HERE}/usr/lib"
    
    # libGL drivers
    export LIBGL_DRIVERS_PATH="${HERE}/usr/lib/i386-linux-gnu/dri:${LIBGL_DRIVERS_PATH}"
    
    # Gallium Nine
    #export D3D_MODULE_PATH="${HERE}/usr/lib/d3d:${D3D_MODULE_PATH}"

    #Font Config
    export FONTCONFIG_PATH="${HERE}/etc/fonts:${FONTCONFIG_PATH}"

    #LD
    export WINELDPATH="${HERE}/lib/ld-linux.so.2"

    # GTK 3.0
    export GTK_PATH="${HERE}/usr/lib/i386-linux-gnu/gtk-3.0"

    # GStreamer environment variables
    export GST_REGISTRY_REUSE_PLUGIN_SCANNER="no"
    export GST_PLUGIN_SYSTEM_PATH_1_0="${HERE}/usr/lib/i386-linux-gnu/gstreamer-1.0/"
    export GST_PLUGIN_SCANNER_1_0="${HERE}/usr/lib/i386-linux-gnu/gstreamer-1.0/gst-plugin-scanner"
    export GST_PTP_HELPER_1_0="${HERE}/usr/lib/i386-linux-gnu/gstreamer-1.0/gst-ptp-helper"
    export GST_PLUGIN_PATH="${GST_PLUGIN_SYSTEM_PATH_1_0}"
    export GST_PLUGIN_SYSTEM_PATH="${GST_PLUGIN_SYSTEM_PATH_1_0}"
    export GST_PLUGIN_SCANNER="${GST_PLUGIN_SCANNER_1_0}"

    export VK_ICD_FILENAMES="${curdir}/usr/share/vulkan/icd.d/radeon_icd.i686.json:${curdir}/usr/share/vulkan/icd.d/radeon_icd.i686.json"

    WINEPREFIX=$wineprefix WINELOADER=$wineloader WINEDEBUG=$winedebug $winepreloader $wine "$@"
else
    WINEPREFIX=$wineprefix WINELOADER=$wineloader WINEDEBUG=$winedebug $wine "$@"
fi
