Sha256: af410f20ed37ca3b365210691b3c318a579471d1ed196650597e6c93950cfa21

Contents?: true

Size: 769 Bytes

Versions: 2

Compression:

Stored size: 769 Bytes

Contents

#!/usr/bin/env ruby

require 'open-uri'
require 'openssl'

# Interval between retries (in seconds)
INTERVAL_LENGTH = 5.0

# Maximum amount of time to keep retrying (in seconds)
MAX_TIME_TO_RETRY = 300.0

if ARGV.length != 1
  puts 'USAGE: wait_for_url.rb <url>'
  exit
end

url = ARGV[0]
retries = (MAX_TIME_TO_RETRY / INTERVAL_LENGTH).ceil

begin
  puts "Fetching #{url}"
  open(url, ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE, redirect: false)
rescue OpenURI::HTTPError => error
  response = error.io
  puts "Response status code: #{response.status[0]}"
  unless (retries -= 1).zero? || response.status[0] != '500'
    sleep(INTERVAL_LENGTH)
    retry
  end
rescue OpenURI::HTTPRedirect => error
  puts "Redirect to: #{error.uri}"
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
TerraformDevKit-0.1.1 exe/wait_for_url
TerraformDevKit-0.1.0 exe/wait_for_url