+ add_namevirthost=
+ mkdir_docroot=
+ symlink_docroot=
+ docroot=
+ vhostname=
+
+ while echo "x$1" | grep -q '^x-'; do
+ case "$1" in
+ -nvh)
+ add_namevirthost=1
+ shift
+ ;;
+ -d)
+ mkdir_docroot=1
+ shift
+ ;;
+ -s)
+ shift
+ symlink_docroot="$1"
+ shift
+ ;;
+ -r)
+ shift
+ docroot="$1"
+ if ! echo "$docroot" | grep -q /; then
+ docroot="/var/www/$docroot"
+ fi
+ shift
+ ;;
+ -n)
+ shift
+ vhostname="$1"
+ shift
+ ;;
+ esac
+ done
+
+ vhosttmpl="$1.template"
+ vhost="$2"
+ venabled="$3"
+ [ -z "$vhostname" ] && vhostname=$(echo "$vhost"| awk -F. '{print $1}')
+ force_vhost=
+
+ vhostdir=$CONFDIR/sites-available
+ venabledir=$CONFDIR/sites-enabled
+
+ if [ ! -e "$TMPLDIR/${vhosttmpl}" ]; then
+ echo "E: vhost template ${vhosttmpl} not found in $TMPLDIR!" 1>&2
+ exit 2
+ fi
+
+ [ -z "$docroot" ] && docroot="/var/www/$vhostname.$DOMAIN"
+
+ # if we were broken mid-installation, force
+ if [ ! -e "$docroot" -a \( -n "$mkdir_docroot" -o -n "$symlink_docroot" \) ]; then
+ force_vhost=1
+ fi
+
+ # add vhost if either of these is true
+ # - adding is forced OR
+ # - it doesn't exist
+ #
+ if [ -n "$force_vhost" -o \( ! -e "$vhostdir/$vhost" -a ! -e "$venabledir/$venabled" \) ]; then
+
+ cp_echo "CN: Adding $vhost VirtualHost."
+ out=$(mktemp $vhostdir/$vhost.XXXXXX)
+ temp_files="${temp_files} ${out}"
+
+ # CARNet header.
+ tag_conf "$out"
+
+ if [ "$add_namevirthost" ]; then
+ nvh=$(awk -F'[ >]' '/^<VirtualHost/ {print $2}' $TMPLDIR/$vhosttmpl |\
+ sed "s/IPADDR/$MYIP/g")
+ echo "NameVirtualHost $nvh" >> $out
+ fi
+
+ sed "s/HOST/$vhostname/g; s/DOMAIN/$DOMAIN/g;
+ s#DOCROOT#$docroot#g; s/IPADDR/$MYIP/g" < $TMPLDIR/$vhosttmpl >> $out
+ cp_mv $out $vhostdir/$vhost
+ chmod 644 $vhostdir/$vhost
+ ln -fs ../sites-available/$vhost $venabledir/$venabled
+
+ if [ -n "$mkdir_docroot" -a ! -d "$docroot" ]; then
+ mkdir "$docroot"
+ echo '<html><body><h1>Radi!</h1></body></html>' > "$docroot/index.html"
+ elif [ -n "$symlink_docroot" ]; then
+ ln -fs "$symlink_docroot" "$docroot"
+ fi