worked=1 s3_path="<%= data[:s3_url] %>" output_path="<%= data[:output_path] %>" log "fetch: starting to fetch $s3_path" for attempt in {1..200}; do [[ $worked != 0 ]] || break log "fetch: attempt ${attempt} to get $s3_path ..." timeout 600 aws s3 cp --quiet $s3_path $output_path 2> >(log) && worked=0 || (log "fetch: attempt failed, sleeping 30"; sleep 30) done [[ $worked != 0 ]] && fatal "fetch: failed to pull deb from S3" log "fetch: successfully fetched $s3_path"