#!/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