summaryrefslogblamecommitdiff
path: root/www/apache13-fp/pkg-deinstall
blob: bfe402316e808f3224bb4f68cb2040b2990a62fd (plain) (tree)










































































































                                                                                                 
#!/bin/sh
#
#	$FreeBSD$
#
# Created by: hetzels@westbend.net

PKG_USER=${PKG_USER:=www}
PKG_GROUP=${PKG_GROUP:=www}

PKG_PREFIX=${PKG_PREFIX}
HOST_NAME=`/bin/hostname`

AP_CGI=${PKG_PREFIX}/www/cgi-bin
AP_CONF=${PKG_PREFIX}/etc/apache
AP_DATA=${PKG_PREFIX}/www/data
AP_SHARE=${PKG_PREFIX}/share/doc/apache

IMAGES_DIR=${AP_SHARE}/manual/images
IMAGES_VTI=${AP_DATA}/images/_vti_cnf

remove_user()
{
	if [ ! -x /usr/sbin/pw ]; then
		echo "*** Unable to remove the Apache user and group (${PKG_USER}/${PKG_GROUP})"
		exit 69
	fi

	if pw usershow ${PKG_USER} -q > /dev/null; then
		olduid=`pw show user ${PKG_USER} 2> /dev/null | cut -d: -f3`
		oldgid=`pw show group ${PKG_GROUP} 2> /dev/null | cut -d: -f3`
		if [ ${olduid} -ne 80 ]; then
			echo "To delete Apache user permanently, use 'pw userdel ${PKG_USER}'"
		fi
		if [ ${oldgid} -ne 80 ]; then
			echo "To delete Apache group permanently, use 'pw groupdel ${PKG_GROUP}'"
		fi
	fi
}

remove_file()
{
	local source_dir=$1
	local target_dir=$2
	local file=$3
	local ret=1

	if [ -f ${target_dir}/${file} ]; then
	    if cmp -s ${source_dir}/${file} ${target_dir}/${file} ; then
		rm -f ${target_dir}/${file}
		ret=0
	    fi
	fi

	return ${ret}
}

remove_apache_doc_root ()
{
    if [ -d ${AP_CGI} ]; then
	for file in `ls ${AP_CGI}.default`
	{
	    remove_file ${AP_CGI}.default ${AP_CGI} ${file}
	}
    fi

    if [ -d ${AP_DATA} ]; then
	if [ -d ${AP_DATA}/images ] ; then
	    for file in apache_pb.gif fplogo.gif powerlogo.gif
	    {
		if remove_file ${IMAGES_DIR} ${AP_DATA}/images ${file}; then
		    if [ -d ${IMAGES_VTI} -a -f ${IMAGES_VTI}/${file} ] ; then
			rm ${IMAGES_VTI}/${file}
		    fi
		fi
	    }
	    if [ -d ${IMAGES_VTI} ]; then
		rmdir ${IMAGES_VTI}
	    fi
	fi

	remove_file ${AP_SHARE} ${AP_DATA} index.html.en
    fi
}

remove_httpd_conf ()
{
    if [ -f ${AP_CONF}/httpd.conf ] ; then
	/bin/cat ${AP_CONF}/httpd.conf.default | \
	    /usr/bin/sed -e 's;@@HOSTNAME@@;'${HOST_NAME}';' \
	    > ${AP_CONF}/httpd.conf.tmp
	if cmp -s ${AP_CONF}/httpd.conf ${AP_CONF}/httpd.conf.tmp ; then
		rm -f ${AP_CONF}/httpd.conf
	fi
	rm ${AP_CONF}/httpd.conf.tmp
    fi
}

case $2 in
    DEINSTALL)
	remove_apache_doc_root
	remove_httpd_conf
	;;
    POST-DEINSTALL)
	remove_user
	;;

esac