diff options
author | ijliao <ijliao@FreeBSD.org> | 2002-06-20 04:35:36 +0000 |
---|---|---|
committer | ijliao <ijliao@FreeBSD.org> | 2002-06-20 04:35:36 +0000 |
commit | 899123dd29aefa6f4218799aaef6467cdd57d109 (patch) | |
tree | da940028d2695dc76bcb9250c91db7d8c37f62e1 /www/apache13-fp/pkg-deinstall | |
parent | e6e8e7c91b1df281b1cdba291fe0ac8c5e1110a9 (diff) | |
download | FreeBSD-ports-899123dd29aefa6f4218799aaef6467cdd57d109.zip FreeBSD-ports-899123dd29aefa6f4218799aaef6467cdd57d109.tar.gz |
handle unremoved files more properly
bump portrevision
PR: 39557
Submitted by: maintainer
Diffstat (limited to 'www/apache13-fp/pkg-deinstall')
-rw-r--r-- | www/apache13-fp/pkg-deinstall | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/www/apache13-fp/pkg-deinstall b/www/apache13-fp/pkg-deinstall new file mode 100644 index 0000000..bfe4023 --- /dev/null +++ b/www/apache13-fp/pkg-deinstall @@ -0,0 +1,107 @@ +#!/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 |