131 lines
3.6 KiB
PHP
131 lines
3.6 KiB
PHP
SELF=$(basename $0)
|
|
RELENG_XORRISO=0
|
|
KEEP=0
|
|
SIMULATE_FAILURE=0
|
|
CLEANUP=1
|
|
|
|
START_DIR_DONT_CHANGE=`pwd`
|
|
GEN_DATA_DIR=releng_generated_data/${SELF}
|
|
|
|
#############################################
|
|
print_help() {
|
|
cat << EOF
|
|
|
|
Usage: $SELF -x path/to/xorriso [-k0|1] [-f0|1] [-h]
|
|
-x absolute or relative path to binary to be run.
|
|
-k keep selfgenerated data (values 0,1, default 0).
|
|
-c cleanup selfgenerated data kept from previous
|
|
run and exit (values 0,1, default 0).
|
|
-f simulate failure (values 0,1, default 0).
|
|
EOF
|
|
}
|
|
|
|
boldify() {
|
|
if which tput >/dev/null 2>&1; then tput smso; fi
|
|
}
|
|
|
|
unboldify() {
|
|
if which tput >/dev/null 2>&1; then tput rmso; fi
|
|
}
|
|
|
|
#############################################
|
|
cleanup() {
|
|
if [ ${KEEP} -eq 0 -a ${CLEANUP} -eq 1 ]; then
|
|
# safety net, just in case -> we want to be in the starting
|
|
# directory before removing whatever self-generated stuff
|
|
if [ -d "${GEN_DATA_DIR}" ]; then
|
|
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}
|
|
rm -rf ${GEN_DATA_DIR}
|
|
boldify
|
|
printf "${SELF}: Removed (self-generated) %s\n" ${GEN_DATA_DIR}
|
|
unboldify
|
|
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
|
|
printf "${SELF}: ${GEN_DATA_DIR} does not exist. Nothing to clean.\n"
|
|
fi
|
|
else
|
|
boldify
|
|
printf "${SELF}: Leaving (self-generated) %s\n" ${GEN_DATA_DIR}
|
|
unboldify
|
|
fi
|
|
}
|
|
|
|
#############################################
|
|
while getopts “x:k:c:f:h” OPTION
|
|
do
|
|
case $OPTION in
|
|
x)
|
|
RELENG_XORRISO=$OPTARG
|
|
;;
|
|
k)
|
|
KEEP=$OPTARG
|
|
;;
|
|
c)
|
|
CLEANUP=$OPTARG
|
|
cleanup
|
|
exit 0
|
|
;;
|
|
f)
|
|
SIMULATE_FAILURE=$OPTARG
|
|
;;
|
|
h)
|
|
print_help
|
|
exit 0
|
|
;;
|
|
*)
|
|
print_help
|
|
exit 31
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# Each releng_ test should decide whether or not to check that
|
|
#if [ ! -x $RELENG_XORRISO ]; then
|
|
# print_help
|
|
# printf "\n${SELF}: -x absolute or relative path to binary to be run.\n\n"
|
|
# exit 31
|
|
#fi
|
|
|
|
if [ x"$KEEP" != x"0" -a x"$KEEP" != x"1" ]; then
|
|
print_help
|
|
printf "\n${SELF}: -k keep selfgenerated data.\n\n"
|
|
exit 31
|
|
fi
|
|
|
|
if [ x"$CLEANUP" != x"0" -a x"$CLEANUP" != x"1" ]; then
|
|
print_help
|
|
printf "\n${SELF}: -c cleanup selfgenerated data kept from previous run.\n\n"
|
|
exit 31
|
|
fi
|
|
|
|
if [ x"$SIMULATE_FAILURE" != x"0" -a x"$SIMULATE_FAILURE" != x"1" ]; then
|
|
print_help
|
|
printf "\n${SELF}: -f simulate failure.\n\n"
|
|
exit 31
|
|
fi
|