summaryrefslogtreecommitdiffstats
path: root/www/apache13-fp/pkg-deinstall
diff options
context:
space:
mode:
authorijliao <ijliao@FreeBSD.org>2002-06-20 04:35:36 +0000
committerijliao <ijliao@FreeBSD.org>2002-06-20 04:35:36 +0000
commit899123dd29aefa6f4218799aaef6467cdd57d109 (patch)
treeda940028d2695dc76bcb9250c91db7d8c37f62e1 /www/apache13-fp/pkg-deinstall
parente6e8e7c91b1df281b1cdba291fe0ac8c5e1110a9 (diff)
downloadFreeBSD-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-deinstall107
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
OpenPOWER on IntegriCloud