#!/bin/bash

set -e

ACTION=$1
USER=$2
WEBSITE=$3

USERROOT=/home
WEBROOT=/var/www
LOGROOT=/var/log/apache
WEBALIZER_OPTIONS="-q"

function webdir()	{ echo $1/VIRTUAL/$2; }
function userwebdir()	{ echo $1/$2/web_$3; }
#function logdir()	{ echo ${LOGROOT}/${WEBSITE}; }
#function logfiles()	{ $(ls -r $LOGDIR/*-access*.gz) $(ls -r $LOGDIR/access*.??.gz) $(ls -r $LOGDIR/access*.?.gz) $(ls -r $LOGDIR/access*.?); }
function logfiles()	{ ls $1/$2/????.??.??; }
function host()		{ cat $1/VIRTUAL/$2/hostname || exit 1; }
function domain()	{ cat $1/VIRTUAL/$2/domainname || exit 1; }
function thishost()	{ cat /etc/mailhost; }

# The above can be overridden in /etc/local/www

. /etc/local/www || exit 1

function apache_virtualhost() {
	echo "\
<VirtualHost $WEBSITE>
	ServerName	$WEBSITE
	ServerAdmin	$USER@$(thishost)
	DocumentRoot	$(userwebdir ${USERROOT} ${USERID} ${WEBSITE})
	user		$USER
	group		$USER
</VirtualHost>
" > /etc/apache/virtual/$WEBSITE
}

test "x$WEBSITE" = "x" && $ACTION=""

case "$ACTION" in
    add)
	echo "Adding web user $USER: "
	adduser $USER || exit 1
	mkdir $(userwebdir ${USERROOT} ${USERID} ${WEBSITE})
	user-init $USER
	$(apache_virtualhost)
	;;
    attach)
	echo "Attaching website to existing user $USER: "
	mkdir $(userwebdir ${USERROOT} ${USERID} ${WEBSITE})
	user-init $USER
	$(apache_virtualhost)
	;;
    *)
	echo "Usage:"
	echo "Adding a new user:"
	echo "   $(basename $0) add <user> <www.domain.com>"
	echo
	echo "Attaching a website to an existing user:"
	echo "   $(basename $0) attach <user> <www.domain.com>"
	exit 1
	;;
esac

exit 0