pkgsrc/mk/install/deinstall
jlam e38613966f Create a new variable "RCD_SCRIPTS_EXAMPLEDIR" that contains the location
of the example rc.d scripts for a package.  This defaults to
${PREFIX}/etc/rc.d, but may be reset for those odd packages, e.g. qmail,
that set LOCALBASE=/.
2002-07-24 20:30:06 +00:00

212 lines
4.4 KiB
Text

# start of deinstall
#
# $NetBSD: deinstall,v 1.11 2002/07/24 20:30:06 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="${RCD_SCRIPTS_EXAMPLEDIR}/${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.
#
if [ "${_PKG_CONFIG}" = "YES" ]; then
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
fi
;;
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
if [ "${_PKG_CONFIG}" = "YES" ]; then
${RMDIR} -p "${dir}" 2>/dev/null || ${TRUE}
is_make_dir=` \
eval set -- ${ALL_MAKE_DIRS}; \
is_make_dir=0; \
for make_dir; do \
case "${make_dir}" in \
${dir}) is_make_dir=1; break ;; \
esac; \
done; \
${ECHO} ${is_make_dir} \
`
if [ ${is_make_dir} -eq 0 -a -d "${dir}" ]; then
existing_dirs="${existing_dirs} \"${dir}\""
fi
else
case "${dir}" in
${PKG_PREFIX}/*)
${RMDIR} -p "${dir}" 2>/dev/null || ${TRUE}
;;
esac
case "${dir}" in
#
# Don't bother the admin about the following dirs
# if they still exist.
#
${PKG_SYSCONFBASE}|${RCD_SCRIPTS_DIR})
;;
*)
if [ -d "${dir}" ]; then
existing_dirs="${existing_dirs} \"${dir}\""
fi
;;
esac
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