take extra measures we are in sepf-generated data directory before removing self-generated cruft

This commit is contained in:
George Danchev 2011-07-08 16:01:17 +00:00
parent 5a101ffb28
commit d81ac5328b

View File

@ -27,9 +27,34 @@ cleanup() {
# directory before removing whatever self-generated stuff # directory before removing whatever self-generated stuff
if [ -d "${GEN_DATA_DIR}" ]; then if [ -d "${GEN_DATA_DIR}" ]; then
cd "${START_DIR_DONT_CHANGE}" || exit 2 cd "${START_DIR_DONT_CHANGE}" || exit 2
# Verify once again we are in the releng_generated_data directory
# Check for both returned code of grep and returned matching string
READ_CANON_EXISTS=`readlink -e "${GEN_DATA_DIR}"`
DIR_NAME_GEN_DATA=`dirname "${READ_CANON_EXISTS}"`
set +e
RET_NON_EMPTY_STRING=`echo "${DIR_NAME_GEN_DATA}" | grep -P "\w+\/releng_generated_data$"`
GREP_RET_GEN_DATA="$?"
case "${GREP_RET_GEN_DATA}" in
0)
if [ x"${RET_NON_EMPTY_STRING}" != x"" ]; then
# now call the nastiness
chmod +w -R ${GEN_DATA_DIR} chmod +w -R ${GEN_DATA_DIR}
rm -rf ${GEN_DATA_DIR} rm -rf ${GEN_DATA_DIR}
printf "${SELF}: Removed (self-generated) %s\n" ${GEN_DATA_DIR} printf "${SELF}: Removed (self-generated) %s\n" ${GEN_DATA_DIR}
else
printf "${SELF}: FAIL: Safety check for being in releng_generated_data directory.\n"
printf "${SELF}: FAIL: GREP returned empty string: ${RET_NON_EMPTY_STRING}.\n"
printf "${SELF}: FAIL: Skipped trying to remove ${GEN_DATA_DIR} directory. Exiting.\n"
fi
;;
*)
printf "${SELF}: FAIL: Safety check for being in releng_generated_data directory.\n"
printf "${SELF}: FAIL: GREP returned code: ${GREP_RET_GEN_DATA}.\n"
printf "${SELF}: FAIL: Skipped trying to remove ${GEN_DATA_DIR} directory. Exiting.\n"
exit 30
;;
esac
else else
printf "${SELF}: ${GEN_DATA_DIR} does not exist. Nothing to clean.\n" printf "${SELF}: ${GEN_DATA_DIR} does not exist. Nothing to clean.\n"
fi fi