#!/bin/bash

. exec/system/config/allg.sh
. exec/system/shell/allg/file.sh

find_script apache2/webdav read.sh
find_script domain/detail  read.sh

domainconf=`get_data "$getdomain"`
get_domain "$domainconf"

if [  "$typ" = "" ] || [ "$typ" = "standalone" ]; then
 find_template conffile      apache2/webdav webdav_single.conf
 find_template conffile_dirs apache2/webdav webdav_directories_single.conf

else
 find_template conffile      apache2/webdav webdav_domain.conf
 find_template conffile_dirs apache2/webdav webdav_directories_domain.conf

  # ==================================================================
  # Systembenutzer erzeugen
  # ==================================================================
  apacheuser="apache"$(hostname)
  bindpassword=$(dd if=/dev/urandom bs=2048 count=1 2>/dev/null |tr -dc "a-zA-Z0-9"|fold -w 64 |head -1)

  mne_need_error
  $sambabin/samba-tool user list | egrep "^$apacheuser\$" >/dev/null
  if [ "$errorresult" != "0" ]; then
    $sambabin/samba-tool user create "$apacheuser" --random-password $option 2>&1 >&$logfile
    $sambabin/samba-tool user setexpiry --noexpiry "$apacheuser" 2>&1 >&$logfile
  fi 

  $sambabin/samba-tool user setpassword "$apacheuser" --newpassword="$bindpassword" 2>&1 >&$logfile

fi

# ==================================================================
# Konfiguration schreiben
# ==================================================================

conf=
dirs=
hostname=$(hostname)

dirs=`( get_data "$getreleases" | \
  while read line; 
  do
     get_releases "$line"
     groupname="Mneshare $(Tolower $hostname) $(Tolower $name)"
     groupnameread="$groupname Read"

     prog='/####RELEASENAME####/ { gsub(/####RELEASENAME####/,"'$name'"); }
           /####FOLDERNAME####/  { gsub(/####FOLDERNAME####/,"'$DATAROOT$location'");   }
           /####DESCRIPTION####/ { gsub(/####DESCRIPTION####/,"'$description'"); }
           /####GROUPNAME####/ { gsub(/####GROUPNAME####/,"'$groupname'"); }
           /####GROUPNAMEREAD####/ { gsub(/####GROUPNAMEREAD####/,"'$groupnameread'"); }
           /####BINDPASSWD####/ { gsub(/####BINDPASSWD####/,"'$bindpassword'"); }
           /####DCDOMAIN####/ { gsub(/####DCDOMAIN####/,"'$dcdomain'"); }
           /####HOSTNAME####/ { gsub(/####HOSTNAME####/,"'$hostname'"); }
                                 { print $0 }'

     
     dir=$(awk "$prog" $conffile_dirs)
     echo "$dir"
  done )`

prog='/####DIRECTORYS####/ { gsub(/####DIRECTORYS####/,directories); printf($0); next; }
      /####DB####/         { gsub(/####DB####/,db); }
      /####DBUSER####/     { gsub(/####DBUSER####/,dbuser); }
                           { print $0 }'
                           
dirs=`echo "$dirs" | awk '{ gsub("%", "%%"); printf("%s\\\\n", $0);}'`

conf=`awk "$prog" "directories=$dirs" "db=$DB" "dbuser=$DBUSER" $conffile`

rm -f $apache2confdir/mne_webdav.conf 2>&1 >/dev/null
echo "$conf" >   $apache2confdir/mne_webdav.conf

if [ "$apache2enconf" != "" ]; then
  $apache2enconf mne_webdav.conf 2>&1 > /dev/null
fi

$apache2reload 2>&1 >&$logfile

exit $exit_status
