# start of deinstall
#
# $NetBSD: deinstall,v 1.8 2001/11/26 20:37:39 jlam Exp $

eval set -- ${PKG_USERS}
for userset
do
	user=`
		IFS=":"
		set -- ${userset}
		${ECHO} "$1"
	`
	ALL_USERS="${ALL_USERS} \"${user}\""
done
eval set -- ${PKG_GROUPS}
for groupset
do
	group=`
		IFS=":"
		set -- ${groupset}
		${ECHO} "$1"
	`
	ALL_GROUPS="${ALL_GROUPS} \"${group}\""
done

eval set -- ${CONF_FILES} ${SUPPORT_FILES}
for file
do
	ALL_FILES="${ALL_FILES} \"${file}\""
done
eval set -- ${RCD_SCRIPTS}
for script
do
	samplefile="${PKG_PREFIX}/etc/rc.d/${script}"
	file="${RCD_SCRIPTS_DIR}/${script}"
	shift
	ALL_FILES="${ALL_FILES} \"${samplefile}\" \"${file}\""
done
eval set -- ${CONF_FILES_PERMS} ${SUPPORT_FILES_PERMS}
while [ $# -gt 0 ]
do
	samplefile="$1"; file="$2"; owner="$3"; group="$4"; mode="$5"
	shift; shift; shift; shift; shift 
	ALL_FILES="${ALL_FILES} \"${samplefile}\" \"${file}\""
done

eval set -- ${MAKE_DIRS}
for dir
do
	ALL_MAKE_DIRS="${ALL_MAKE_DIRS} \"${dir}\""
done
eval set -- ${MAKE_DIRS_PERMS}
while [ $# -gt 0 ]
do
	dir="$1"; owner="$2"; group="$3"; mode="$4"
	shift; shift; shift; shift
	ALL_MAKE_DIRS="${ALL_MAKE_DIRS} \"${dir}\""
done
eval set -- ${ALL_MAKE_DIRS} ${OWN_DIRS}
for dir
do
	ALL_DIRS="${ALL_DIRS} \"${dir}\""
done
eval set -- ${OWN_DIRS_PERMS}
while [ $# -gt 0 ]
do
	dir="$1"; owner="$2"; group="$3"; mode="$4"
	shift; shift; shift; shift
	ALL_DIRS="${ALL_DIRS} \"${dir}\""
done
ALL_DIRS=`
	( eval set -- ${ALL_DIRS}
	  for dir
	  do
		${ECHO} "\"${dir}\""
	  done
	) | ${SORT} -r
`

case ${STAGE} in
DEINSTALL)
	# Remove configuration files if they don't differ from the default
	# config file.
	#
	eval set -- ${ALL_FILES}
	while [ $# -gt 0 ]
	do
		samplefile="$1"; file="$2"
		shift; shift

		if [ "${file}" != "${samplefile}" -a			\
		     -e "${file}" -a -e "${samplefile}" ]
		then
			if ${CMP} -s "${file}" "${samplefile}"
			then
				${RM} -f "${file}"
			fi
		fi
	done
	;;

POST-DEINSTALL)
	modified_files=''
	eval set -- ${ALL_FILES}
	while [ $# -gt 0 ]
	do
		samplefile="$1"; file="$2"
		shift; shift

		if [ -e "${file}" ]
		then
			modified_files="${modified_files} \"${file}\""
		fi
	done

	existing_dirs=''
	eval set -- ${ALL_DIRS}
	for dir
	do
		is_make_dir=`
			(	eval set -- ${ALL_MAKE_DIRS}
				is_make_dir=0
				for make_dir
				do
					if [ "${dir}" = "${make_dir}" ]
					then
						is_make_dir=1
						break
					fi
				done
				${ECHO} ${is_make_dir}
			)
		`
		${RMDIR} -p "${dir}" 2>/dev/null || ${TRUE}
		if [ ${is_make_dir} -eq 0 -a -d "${dir}" ]
		then
			existing_dirs="${existing_dirs} \"${dir}\""
		fi
	done

	if [ -n "${ALL_USERS}" -o -n "${ALL_GROUPS}" -o			\
	     -n "${modified_files}" -o -n "${existing_dirs}" ]
	then
		${CAT} << EOF
===========================================================================
If you won't be using ${PKGNAME} any longer, you may want to remove
EOF
		if [ -n "${ALL_USERS}" ]
		then
			${ECHO} ""
			${ECHO} -n "  * the following users"
			sep=":   "
			eval set -- ${ALL_USERS}
			for user
			do
				${ECHO} -n "${sep}${user}"
				sep=", "
			done
			${ECHO} ""
		fi
		if [ -n "${ALL_GROUPS}" ]
		then
			${ECHO} ""
			${ECHO} -n "  * the following groups"
			sep=":  "
			eval set -- ${ALL_GROUPS}
			for group
			do
				${ECHO} -n "${sep}${group}"
				sep=", "
			done
			${ECHO} ""
		fi
		if [ -n "${modified_files}" ]
		then
			${CAT} << EOF

  * the following files:

EOF
			eval set -- ${modified_files}
			for file
			do
				${ECHO} "	${file}"
			done
		fi
		if [ -n "${existing_dirs}" ]
		then
			${CAT} << EOF

  * the following directories:

EOF
			eval set -- ${existing_dirs}
			for dir
			do
				${ECHO} "	${dir}"
			done
		fi
		if [ -n "${RCD_SCRIPTS}" ]
		then
			${CAT} << EOF

You many also want to remove any settings in rc.conf that you may have
made in order to use ${PKGNAME}.
EOF
		fi
		${CAT} << EOF
===========================================================================
EOF
	fi
	;;

*)
	${ECHO} "Unexpected argument: ${STAGE}"
	exit 1
	;;
esac

# end of deinstall
