From 13f8f060c53735f84d275f8e51993478c633ac41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Sachse?= <Joerg.Sachse@slub-dresden.de> Date: Tue, 27 Jul 2021 12:09:10 +0200 Subject: [PATCH] add error handling, color coded messages and shellchecked style --- build_all.sh | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) mode change 100644 => 100755 build_all.sh diff --git a/build_all.sh b/build_all.sh old mode 100644 new mode 100755 index b4be6da..238b758 --- a/build_all.sh +++ b/build_all.sh @@ -19,19 +19,30 @@ set -o nounset # Treat unset variables as an error -BUILD=./build -if [ -e ${BUILD} ]; -then - echo BUILD-dir ${BUILD} already exist, Aborting... -else - TEMP_FILE=$(mktemp) - COMBINED_FILE=${BUILD}/SLUB_mediaconch_policy_all.xml - mkdir $BUILD +RED="\\e[31m" +WHITE="\\e[0m" +ERROR="${RED}[ERROR]\t${WHITE}" +INFO="[INFO]\t" + +BUILD="./build" +REQUIREMENTS="mktemp xsltproc" # list external required binaries here (space separated) + +for REQUIREMENT in ${REQUIREMENTS}; do + command -v "${REQUIREMENT}" >/dev/null 2>&1 || { echo >&2 "${ERROR}${REQUIREMENT} required but not installed. Aborting."; exit 1; } +done + +if [ -d ${BUILD} ]; then + echo "${INFO}BUILD-dir '${BUILD}' already exists. It will be removed and recreated for a fresh build." + rm -rf "${BUILD}" || { echo >&2 "${ERROR}Could not remove pre-existing build directory at '${BUILD}'. Aborting."; exit 1; } +fi + + TEMP_FILE="$(mktemp)" + COMBINED_FILE="${BUILD}/SLUB_mediaconch_policy_all.xml" + mkdir -p "${BUILD}" || { echo >&2 "${ERROR}Could not create build directory at '${BUILD}'. Aborting."; exit 1; } echo '<?xml version="1.0" encoding="UTF-8"?>' > "${TEMP_FILE}" echo '<policy />' >> "${TEMP_FILE}" - xsltproc SLUB_mediaconch_policy_all.xsl "${TEMP_FILE}" > "${COMBINED_FILE}" + xsltproc "SLUB_mediaconch_policy_all.xsl" "${TEMP_FILE}" > "${COMBINED_FILE}" rm -f "${TEMP_FILE}" ls -lh "${COMBINED_FILE}" - echo "finished." -fi + echo "${INFO}finished." -- GitLab