#!/bin/sh
# 
# Little script to add Cocoon to jserv configuration
#
# v0.2 2000-02-24 Henri Gomez <gomez@slib.fr>
#
# From work of Murray Todd Williams <MurrayTodd@yahoo.com>
#

#
# Update jserv.conf if existing
#
if [ -f /etc/httpd/conf/jserv/jserv.conf ] ; then

    grep '^ApJServAction \.xml' /etc/httpd/conf/jserv/jserv.conf >/dev/null 2>&1    
	if test $? -eq 0 ; then
    # Unexpected, there's already an .xml parameter
    # line.  We'll just comment it out.
        sed 's/^ApJServAction \.xml/# &/' \
        < /etc/httpd/conf/jserv/jserv.conf \
        > /etc/httpd/conf/jserv/jserv.conf.new
        mv /etc/httpd/conf/jserv/jserv.conf.new \
        /etc/httpd/conf/jserv/jserv.conf
    fi

    ( echo "/^#ApJServAction \.xml"
    echo "c"
    echo "ApJServAction .xml /servlets/org.apache.cocoon.Cocoon"
    echo "."
    echo "wq"
    ) | ed /etc/httpd/conf/jserv/jserv.conf >/dev/null 2>&1

    # backup cocoon.properties if any
    if [ -f /etc/httpd/conf/jserv/cocoon.properties ]; then
		mv -f /etc/httpd/conf/jserv/cocoon.properties /etc/httpd/conf/jserv/cocoon.properties.bak
	fi
 
	sed 's/.\/repository/\/home\/httpd\/repository/' \
	< /opt/cocoon/conf/cocoon.properties \
	> /etc/httpd/conf/jserv/cocoon.properties.new
	tr -d '\015' < /etc/httpd/conf/jserv/cocoon.properties.new \
	> /etc/httpd/conf/jserv/cocoon.properties
	rm -f /etc/httpd/conf/jserv/cocoon.properties.new

	if [ ! -d /home/httpd/repository ] ; then
		mkdir -m 0755 /home/httpd/repository
		chown nobody /home/httpd/repository
		chgrp nobody /home/httpd/repository
	fi

else
	echo "/etc/httpd/conf/jserv/jserv.conf didn't exist"
	echo "are you sure jserv is installed ?"
	exit
fi

#
# Update jserv.properties if existing
#
if [ -f /etc/httpd/conf/jserv/jserv.properties ] ; then

  # remove existing map if any
  sed -e '/^wrapper.classpath=\/opt\/cocoon\/bin\/Cocoon\.jar/d' \
      -e '/^wrapper.classpath=\/opt\/cocoon\/bin\/fop.jar/d' \
      < /etc/httpd/conf/jserv/jserv.properties \
      > /etc/httpd/conf/jserv/jserv.properties.new
  mv /etc/httpd/conf/jserv/jserv.properties.new \
     /etc/httpd/conf/jserv/jserv.properties

  grep "^wrapper.classpath=" /etc/httpd/conf/jserv/jserv.properties \
  >/dev/null
  if test $? -eq 0 ; then
	( echo "?^wrapper.classpath="
	  echo "a"
	  echo "wrapper.classpath=/opt/cocoon/bin/Cocoon.jar"
	  echo "wrapper.classpath=/opt/cocoon/bin/fop.jar"
	  echo "."
	  echo "wq"
        ) | ed /etc/httpd/conf/jserv/jserv.properties >/dev/null 2>&1
  else
	( echo "/^#.*Syntax.*wrapper-classpath"
	  echo "/^[^#]"
	  echo "a"
	  echo "wrapper.classpath=/opt/cocoon/bin/Cocoon.jar"
	  echo "wrapper.classpath=/opt/cocoon/bin/fop.jar"
	  echo "."
          echo "wq"
	) | ed /etc/httpd/conf/jserv/jserv.properties >/dev/null 2>&1
  fi

else
    echo "/etc/httpd/conf/jserv/jserv.properties didn't exist"
    echo "are you sure jserv is installed ?"
    exit
fi

#
# Update zone.properties if existing
#
if [ -f /etc/httpd/conf/jserv/zone.properties ] ; then
	grep '^servlet.org.apache.cocoon.Cocoon.initArgs=properties' \
		/etc/httpd/conf/jserv/zone.properties >/dev/null 2>&1

	if test $? -eq 0 ; then
    # Unexpected, there's actuall already a cocoon configuration
    # line.  We'll just comment it out.
	    sed 's/^servlet.org.apache.cocoon.Cocoon.initArgs=properties/# &/' \
		< /etc/httpd/conf/jserv/zone.properties \
		> /etc/httpd/conf/jserv/zone.properties.new
   	 	mv /etc/httpd/conf/jserv/zone.properties.new \
       	/etc/httpd/conf/jserv/zone.properties
	fi
	( echo "/^# Servlet Init Parameters"
  	echo "/^# "
  	echo "/^$"
  	echo "i"
  	echo "servlet.org.apache.cocoon.Cocoon.initArgs=properties=/etc/httpd/conf/jserv/cocoon.properties"
  	echo "."
  	echo "wq"
	) | ed /etc/httpd/conf/jserv/zone.properties >/dev/null 2>&1
else
    echo "/etc/httpd/conf/jserv/zone.properties didn't exist"
    echo "are you sure jserv is installed ?"
    exit
fi

echo "**** Cocoon/Jserv ****"
echo ""
echo "To test Cocoon with jserv, restart your apache webserver and try"
echo "       http://localhost/Cocoon.xml"
echo ""
echo "Check Cocoon samples in :"
echo "       http://localhost/manual/cocoon/samples/"
echo ""
echo "Remember to comment line in /etc/httpd/conf/mime.types"
echo "with xml"
echo "#application/xml"
echo "#text/xml           xml"
echo ""

