#!/bin/bash

# vraag om username als niet op commandline

if test "$1" = ""; then
  read -p "Username: " user
else
  user=$1
  echo "Username: $user"
fi
if test "$user" = ""; then
  echo geen username.
  exit
fi

# vraag om domeinnaam
read -p "Domain: " domain

if test "$domain" = ""; then
  echo "Dit klopt niet.... nogmaals:"
  read -p "Domain: " domain
fi

# test of vhost al bestaat
OUTPUT=/etc/apache2/sites-available/$domain.conf
if test -e $OUTPUT; then echo "Vhost bestaat al, gestopt!"; exit; fi

# test of username wel bestaat
if test "$(id -u $user 2>/dev/null)" = ""; then
   echo "user $user bestaat niet, ik stop"
   exit 1
fi

echo "<VirtualHost *:80>"        >> $OUTPUT
echo "       Servername $domain"              >> $OUTPUT
echo "       ServerAlias www.$domain"         >> $OUTPUT
echo "       ServerAdmin webmaster@$domain"   >> $OUTPUT
echo "       DocumentRoot /home/$user/www"    >> $OUTPUT
echo "       ErrorLog /home/$user/log/error.log" >> $OUTPUT
echo "       CustomLog /home/$user/log/access.log combined" >> $OUTPUT
echo "       ServerSignature Off"             >> $OUTPUT
echo "       <IfModule mpm_itk_module>"       >> $OUTPUT
echo "             AssignUserId $user www-data"  >> $OUTPUT
echo "       </IfModule>"                     >> $OUTPUT
echo "       <Directory /home/$user/www>"     >> $OUTPUT
echo "         AllowOverride all"             >> $OUTPUT
echo "         Require all granted"           >> $OUTPUT
echo "       </Directory>"                    >> $OUTPUT
echo "       php_value post_max_size 20M"     >> $OUTPUT
echo "       php_value upload_max_filesize 20M" >> $OUTPUT
echo ""                                         >> $OUTPUT
echo "       <Directory /usr/lib/cgi-bin>"      >> $OUTPUT
echo "         AuthType Basic"                  >> $OUTPUT
echo "         AuthName 'Toegang tot statistieken.'"   >> $OUTPUT
echo "          AuthBasicProvider external"     >> $OUTPUT
echo "          AuthExternal pwauth"            >> $OUTPUT
echo "          Require user $user"             >> $OUTPUT
echo "       </Directory>"                      >> $OUTPUT
echo "       AddExternalAuth pwauth /usr/sbin/pwauth"  >> $OUTPUT
echo "       SetExternalAuthMethod pwauth pipe"        >> $OUTPUT
echo ""                                         >> $OUTPUT
echo "</VirtualHost>"                           >> $OUTPUT

a2ensite $domain > /dev/null
systemctl reload apache2
echo "Done."
echo

# certificaat aanvragen
read -p "Wil je nu meteen een SSL certificaat aanvragen? J/n: " vraag
if test "$vraag" = ""; then vraag="j"; fi
if test "$vraag" = "J"; then vraag="j"; fi
if test "$vraag" = "y"; then vraag="j"; fi
if test "$vraag" = "j"; then
  /usr/local/sbin/cert $domain
fi
echo

# log
logfile=/root/ng.log
date >> $logfile
echo "website: https://$domain/" >> $logfile

# vragen statistiek:
read -p "Wil je ook statistieken aanmaken? [J/n] " vraag
if test "$vraag" = ""; then vraag="j"; fi
if test "$vraag" = "J"; then vraag="j"; fi
if test "$vraag" = "y"; then vraag="j"; fi
if test "$vraag" = "j"; then
  cp -a /etc/awstats/voorbeeld /etc/awstats/awstats.$domain.conf
  rpl -q 'DOMAIN' "$domain" /etc/awstats/awstats.$domain.conf 2>&1
  rpl -q 'USERNAME' "$user" /etc/awstats/awstats.$domain.conf 2>&1
  echo "Bereikbaar op https://$domain/awstats/awstats.pl"
  echo "Done."
fi

# voor wpinstall
echo $domain > /tmp/$user-domain
echo "rm /tmp/$user-domain >/dev/null 2>&1" | at now + 5 minutes >/dev/null 2>&1

echo
