lib/libexec/runner.sh
#shellcheck shell=sh disable=SC2004
# shellcheck source=lib/libexec.sh
. "${SHELLSPEC_LIB:-./lib}/libexec.sh"
use is_empty_directory resolve_module_path module_exists
mktempdir() {
( umask 0077
mkdir "$1"
# Workaround for busybox < 1.20.0 mkdir: fix permissions on 64-bit platforms
# https://bugs.busybox.net/show_bug.cgi?id=4814
[ -u "$1" ] && chmod 0700 "$1"
is_empty_directory "$1"
) && return 0
abort "Somehow any files are exists in the temporary directory" \
"just created. Abort to avoid security risk."
}
rmtempdir() {
rm -rf "$1"
}
read_pid_file() {
eval "$1=''"
set -- "$1" "$2" "${3:-999999999}"
while [ ! -e "$2" ] && [ "$3" -gt 0 ]; do
set -- "$1" "$2" "$(($3 - 1))"
nap
done
if [ -e "$2" ]; then
eval "read -r $1 < \"$2\""
fi
}