diff --git a/.github/scripts/extract-refstyle-badges/extract-refstyle-badges.sh b/.github/scripts/extract-refstyle-badges/extract-refstyle-badges.sh index acbc51f..7d0b0fa 100755 --- a/.github/scripts/extract-refstyle-badges/extract-refstyle-badges.sh +++ b/.github/scripts/extract-refstyle-badges/extract-refstyle-badges.sh @@ -8,9 +8,31 @@ # # ################################################################################# +# ===== Error handling ======= +# set -e: exit on error +set -e + +# invoke the catch() function whenever an error occurs +trap 'catch $? $LINENO' EXIT + +# catch() function just prints an error message (before exit) +catch() { + if [ "$1" != "0" ]; then + # error handling goes here + echo " (Exiting due to return code $1 on line $2)" >&2 + else + echo "Script completed successfully" + fi +} + + # get a reference to the current directory DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +# relative path to README.md READMEFILE="${DIR}/../../../README.md" +# temporary file +TEMPFILE="${DIR}/md-badges.md" +# relative path to output file OUTFILE="${DIR}/../../../docs/REFERENCE_STYLE.md" # extract the table rows from README.md, sort them, and pass them to @@ -22,10 +44,10 @@ readmerows=$( sort ) -# add a newline before processing with awk +# add a newline before processing with awk into TEMPFILE printf "%s\n\n" "$readmerows" \ | gawk --posix -F '|' -f "${DIR}/extract-refstyle-badges.awk" \ -> "${DIR}/md-badges.md" +> "${TEMPFILE}" # now insert the generated md-badges.md content into README.md @@ -35,7 +57,7 @@ tail='^<\!-- ### END GENERATED CONTENT -->' sed -e "/$lead/,/$tail/{ /$lead/{ p; - r $DIR/md-badges.md + r $TEMPFILE }; /$tail/p; d