#!/bin/sh

while [ $# -gt 0 ] ; do
  case $1 in
    --projectroot) PROJECTROOT=$2; shift 2;;
               * )  shift 1;;
  esac
done

cd `dirname $0`
 
 . /etc/os-release

if [ "$ID" = "ubuntu" ]; then
  cat appamor.server | sed -e "s@####PROJECTROOT####@$PROJECTROOT@g" > /etc/apparmor.d/`echo $PROJECTROOT | sed -e 's@/@@' -e 's@/@.@g'`.erp.programs.server
  cat appamor.rexec  | sed -e "s@####PROJECTROOT####@$PROJECTROOT@g" > /etc/apparmor.d/`echo $PROJECTROOT | sed -e 's@/@@' -e 's@/@.@g'`.exec.system.programs.rexec
fi
 
if [ ! -f /etc/mne/erp/standard.conf ]; then
  mv /etc/mne/erp/standard.install /etc/mne/erp/standard.conf
else
  rm /etc/mne/erp/standard.install
fi

if [ -f /etc/apache2/conf-available/mne_erp.conf ]; then
    modified=`cat /etc/apache2/conf-available/mne_erp.conf | awk '/mne_custom/ { print "1"; exit }'`
    if [ ! "$modified" = "1" ]; then
        mv /etc/apache2/conf-available/mne_erp.conf.dist /etc/apache2/conf-available/mne_erp.conf
    fi
else
     mv /etc/apache2/conf-available/mne_erp.conf.dist /etc/apache2/conf-available/mne_erp.conf
fi

if [ -f /etc/apache2/conf-available/mne_erpdav.conf ]; then
    modified=`cat /etc/apache2/conf-available/mne_erpdav.conf | awk '/mne_custom/ { print "1"; exit }'`
    if [ ! "$modified" = "1" ]; then
        mv /etc/apache2/conf-available/mne_erpdav.conf.dist /etc/apache2/conf-available/mne_erpdav.conf
    fi
else
    mv /etc/apache2/conf-available/mne_erpdav.conf.dist /etc/apache2/conf-available/mne_erpdav.conf
fi

mkdir /var/log/mne >/dev/null 2>&1
if [ "$ID" = "ubuntu" ]; then
  chown syslog:syslog /var/log/mne
fi
  
systemctl enable mne_erp.service

if [ -f $PROJECTROOT/erp/programs/server.arg ]; then
    echo 'server.arg exists - update manual'
else
   cp $PROJECTROOT/erp/programs/server.dist.arg     $PROJECTROOT/erp/programs/server.arg
   echo                                          >> $PROJECTROOT/erp/programs/server.arg
   echo "projectroot:  $PROJECTROOT"             >> $PROJECTROOT/erp/programs/server.arg
fi

if [ -f $PROJECTROOT/erp/exec/system/config.sh ]; then
    echo 'config.sh exists - update manual'
else
    cp $PROJECTROOT/erp/exec/system/config.dist.sh   $PROJECTROOT/erp/exec/system/config.sh
    echo                                          >> $PROJECTROOT/erp/exec/system/config.sh
    echo "DATAROOT=$PROJECTROOT/data"             >> $PROJECTROOT/erp/exec/system/config.sh
fi

chgrp -R postgres $PROJECTROOT/erp/module;
chmod -R g+rw  $PROJECTROOT/erp/module;
chgrp -R postgres $PROJECTROOT/erp/db;
chmod -R g+rw  $PROJECTROOT/erp/db;

chmod -R g+rwx $PROJECTROOT/erp/db/dbupdate;

# Auch bei erpsys anpassen
# =========================
chown -R root:www-data $PROJECTROOT/data

chown root:root $PROJECTROOT/exec/system/programs/rexec
chmod  755 $PROJECTROOT/exec/system/programs/rexec
chmod  u+s $PROJECTROOT/exec/system/programs/rexec
chmod  g-s $PROJECTROOT/exec/system/programs/rexec

conffile=$PROJECTROOT/erp_push/backend/carddav/config.php
confsave=$PROJECTROOT/erp_push/backend/carddav/config.preinstall

if [ -f $confsave ]; then
   cardname=`sed -n '/CARDDAV_CONTACTS_FOLDER_NAME/p' < $confsave | cut -d, -f2 | sed -e "s/^ //g" -e "s/'//g" -e "s/).*//" -e "s/@/\\\\\\\\@/g"`
   sed -e "/CARDDAV_CONTACTS_FOLDER_NAME/s@^.*\$@define('CARDDAV_CONTACTS_FOLDER_NAME', '$cardname');@"  < $conffile > $conffile"".new
   mv $conffile"".new $conffile
   rm $confsave 
fi   

mkdir -p /var/lib/z-push
mkdir -p /var/log/z-push

chown www-data:www-data /var/lib/z-push
chown www-data:www-data /var/log/z-push
chown www-data:www-data /var/log/z-push/* >/dev/null 2>&1

chown root:root /etc/mne
chown -R root:root /etc/mne/erp

a2enmod rewrite
a2enmod proxy
a2enmod proxy_http
a2enmod proxy_wstunnel
a2enmod headers
a2enmod dbd
a2enmod authn_dbd
a2enmod authz_dbd
a2enmod authz_host
a2enmod authnz_ldap
a2enmod dav
a2enmod dav_fs
a2enmod ssl

if [ ! -f /etc/apache2/sites-available/000-default-ssl.conf ]; then
  mv /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/000-default-ssl.conf
fi
a2ensite 000-default-ssl.conf

a2enconf mne_erp.conf
a2enconf mne_erpdav.conf

systemctl restart apache2.service
