mirror of
https://github.com/shivammathur/setup-php.git
synced 2024-11-21 19:31:06 +07:00
Handle race condition in get on a mutli self-hosted runners setup
This commit is contained in:
parent
ce2f681d22
commit
449afbcaec
@ -84,12 +84,19 @@ get() {
|
||||
if [ "$mode" = "-s" ]; then
|
||||
sudo curl "${curl_opts[@]}" "${links[0]}"
|
||||
else
|
||||
lock_path="$file_path.lock"
|
||||
until sudo mkdir "$lock_path" 2>/dev/null; do
|
||||
echo "Another process is downloading a file at $file_path, waiting"
|
||||
sleep 1
|
||||
done
|
||||
trap 'sudo rm -rf "$lock_path"' EXIT SIGINT SIGTERM
|
||||
for link in "${links[@]}"; do
|
||||
status_code=$(sudo curl -w "%{http_code}" -o "$file_path" "${curl_opts[@]}" "$link")
|
||||
[ "$status_code" = "200" ] && break
|
||||
done
|
||||
[ "$execute" = "-e" ] && sudo chmod a+x "$file_path"
|
||||
[ "$mode" = "-v" ] && echo "$status_code"
|
||||
sudo rm -rf "$lock_path" >/dev/null 2>&1 || true
|
||||
fi
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user