2025-06-17 16:45:18 -03:00
|
|
|
#!/usr/bin/env bash
|
2025-06-19 18:46:50 -03:00
|
|
|
set -o pipefail
|
2025-06-17 16:45:18 -03:00
|
|
|
|
|
|
|
|
LIB_SRC=${LIB_SRC:-$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)}
|
|
|
|
|
|
2025-06-18 09:49:45 -03:00
|
|
|
# shellcheck source=./src/config.bash
|
2025-06-17 16:45:18 -03:00
|
|
|
source "${LIB_SRC}/config.bash"
|
|
|
|
|
|
2025-06-19 18:46:50 -03:00
|
|
|
if ! command -v sha1sum > /dev/null; then
|
|
|
|
|
echoerr "Error: sha1sum is required for computing file hashes"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
OUTPUTS=${OUTPUTS:-$(mktemp -d)} || exit 1
|
|
|
|
|
OUTPUTS=$(realpath "$OUTPUTS") || exit 1
|
|
|
|
|
|
2025-06-17 16:45:18 -03:00
|
|
|
clh_output_folder() {
|
|
|
|
|
echo "${OUTPUTS}/$1"
|
|
|
|
|
}
|
|
|
|
|
|
2025-06-19 19:58:13 -03:00
|
|
|
clh_clear_outputs() {
|
|
|
|
|
rm -rf "${OUTPUTS}" || true
|
|
|
|
|
}
|
|
|
|
|
|
2025-06-17 16:45:18 -03:00
|
|
|
echoerr() {
|
|
|
|
|
echo "$@" >&2
|
2025-06-17 17:51:12 -03:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await() {
|
2025-06-18 19:28:34 -03:00
|
|
|
local pid=$1 timeout=${2:-30} start="${SECONDS}"
|
2025-06-17 17:51:12 -03:00
|
|
|
while kill -0 "$pid"; do
|
2025-06-18 19:28:34 -03:00
|
|
|
if ((SECONDS - start > timeout)); then
|
|
|
|
|
echoerr "Error: timeout waiting for process $pid to exit"
|
|
|
|
|
return 1
|
|
|
|
|
fi
|
2025-06-17 17:51:12 -03:00
|
|
|
sleep 0.1
|
|
|
|
|
done
|
2025-06-18 19:28:34 -03:00
|
|
|
return 0
|
2025-06-19 18:46:50 -03:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sha1() {
|
|
|
|
|
sha1sum "$1" | cut -d ' ' -f 1 || return 1
|
2025-06-17 16:45:18 -03:00
|
|
|
}
|