#!/bin/bash
############################################
# init-wine
#
# Initialization script for setting up wine environment.
# Usage: ./init-wine
#
# Copyright (c) 2016 Unify GmbH & Co. KG
# Demeter Aron, Kemenes Robert 
# aron.demeter.ext@unify.com, robert.kemenes.ext@unify.com
#
# rpm69 - changing permissions for config dir
############################################

# Import definitions
CMD=$(basename $0)
if [ -f /opt/dtb/bin/_common_definitions ]; then
    . /opt/dtb/bin/_common_definitions
else
	logger -t $CMD -p ERROR -s "The /opt/dtb/bin/_common_definitions file does not exist, exiting the script..."
	exit 1
fi

# Create wine working directory
mkdir -p $DTB_WORKINGDIR
chown $DTB_USER:$DTB_GROUP $DTB_WORKINGDIR
mkdir -p $DTB_WORKINGDIR/drive_c
chown $DTB_USER:$DTB_GROUP $DTB_WORKINGDIR/drive_c

# Check, if wine environment is already installed (having the links to the drbd share should be a good indicator)
cd $DTB_WORKINGDIR/drive_c/ 
if [ "$(find . -lname /var/pgsql/dtb/DTBMaster/winedir)" = "./DTBMaster" ] && [ "$(find . -lname /var/pgsql/dtb/DTBServer/winedir)" = "./DTBServer" ]; then
   plog "DTB is already installed with the symbolic links; Nothing to do."
   exit 0
fi



# Set capabilities for wine binaries
for SETCAPBIN in $SETCAPBINS; do
{
	plog "Setting the capabilities for $SETCAPBIN."
	setcap $WINECAPS $SETCAPBIN 1>/dev/null 2>/dev/null

} done;

plog "Initializing wine working directory."
# Sometimes winetricks cannot be started due to a remaining file with wrong user ownership, remove it to be sure winetricks can start.
rm -f /tmp/early_wine.err.txt
sudo -u $DTB_USER WINEDEBUG=fixme-all,err-ole,-rpc \
                  WINEARCH=win32 \
                  WINEPREFIX=$DTB_WORKINGDIR \
                  /usr/bin/winetricks list 1>/dev/null 2>/dev/null

# Prepare links to DRBD share
plog "Setting up links to DRBD share."

DTBAPPLS="DTBMaster DTBServer"

for DTBAPPL in $DTBAPPLS; do
    # Create the winedir where the installation files will be
	if [ ! -d "${DTB_DRBD_SHARE}/${DTBAPPL}/winedir" ]; then
        mkdir -p $DTB_DRBD_SHARE/$DTBAPPL/winedir
	fi
	# Remove fake symbolic links
	if [ -d "${DTB_WORKINGDIR}/drive_c/$DTBAPPL" ]; then
	    sudo -u $DTB_USER rm -rf $DTB_WORKINGDIR/drive_c/$DTBAPPL
	fi
	# Create symbolic links
	sudo -u $DTB_USER ln -s $DTB_DRBD_SHARE/$DTBAPPL/winedir $DTB_WORKINGDIR/drive_c/$DTBAPPL
	# Create config directory for ini
	if [ ! -d "${DTB_DRBD_SHARE}/${DTBAPPL}/config" ]; then
        mkdir -p $DTB_DRBD_SHARE/$DTBAPPL/config
        # Provide a default ini file
        cp /opt/dtb/$DTBAPPL/config/*.ini $DTB_DRBD_SHARE/$DTBAPPL/config
		chmod -R 777 $DTB_DRBD_SHARE/$DTBAPPL/config
	fi
	# Make the directory for the database export from DTBServer only
	if [ ! -d "${DTB_DRBD_SHARE}/DTBServer/export" ]; then
        mkdir -p $DTB_DRBD_SHARE/DTBServer/export
	fi
done;

# Make the directory for database import
mkdir -p $DTB_DRBD_SHARE/DTBServer/import
chmod 777 $DTB_DRBD_SHARE/DTBServer/import

chown -R $DTB_USER:$DTB_GROUP $DTB_DRBD_SHARE
