Skip to content
Snippets Groups Projects
urls.epp 890 B
Newer Older
Alex Tayts's avatar
Alex Tayts committed
<%- | Array[Hash] $urls | -%>
<%- $urls.each |$url| { -%>
Alex Tayts's avatar
Alex Tayts committed
# url: <%= $url['url'] %>
<%-
if 'resolve_to' in $url {
  $pattern = '^(?:(https?):\/\/)?(?:[^@\/\n]+@)?([^:\/\n]+):?(\d+)?.*'
  $replace = 'proto:\1:domain:\2:port:\3:k:v'
  $url_data = Hash(regsubst($url['url'], $pattern, $replace, 'IG').split(':'))
  $domain = $url_data['domain']

  if $url_data['port'].empty {
    $port = $url_data['proto'] ? {
      'http'  => '80',
      'https' => '443',
      default => '443'
    }
  } else {
    $port = $url_data['port']
  }

  $resolve = " --resolve ${domain}:${port}:${url['resolve_to']}"
} else { $resolve = '' }
-%>
Alex Tayts's avatar
Alex Tayts committed
echo -n "Web URL <%= $url['url'] -%>..."
status=$(curl -s -o /dev/null -w "%{http_code}" -I -XGET --insecure -m 3<%= $resolve %> <%= $url['url'] %>)
Alex Tayts's avatar
Alex Tayts committed
if [ $status -eq <%= $url['status'] %> ]; then
    echo " OK."
else
    echo " FAIL."
    ((result+=1))
fi
<%- } %>