diff --git a/scripts/build_step.inc.sh b/scripts/build_step.inc.sh new file mode 100644 index 000000000..6003cfa35 --- /dev/null +++ b/scripts/build_step.inc.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +# variables used for logging build steps, use build_step() and +# build_step_done() for setting or clearing them. +BUILD_STEP_FILE="$(mktemp)" +BUILD_STEP_PID='' +BUILD_STEP_DELAY='1m' + +build_step_log() { + echo "$(date) -- ${*}" +} + +# start a build step, and log every +build_step() { + echo "${*}" > "${BUILD_STEP_FILE}" + build_step_log "starting: $(cat "${BUILD_STEP_FILE}")" + [ -n "${BUILD_STEP_PID}" ] && return + while sleep "${BUILD_STEP_DELAY}" + do + build_step_log "running: $(cat "${BUILD_STEP_FILE}")" + done & BUILD_STEP_PID=${!} +} + +# clean up the logging of build steps +build_steps_cleanup() { + [ -n "${BUILD_STEP_PID}" ] && kill "${BUILD_STEP_PID}" + rm -f "${BUILD_STEP_FILE}" + BUILD_STEP_PID='' +} + +# automatically stop build step logging and cleanup temporary file +trap build_steps_cleanup EXIT +