<%- | Array[Hash] $urls | -%> <%- $urls.each |$url| { -%> # 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 = '' } -%> echo -n "Web URL <%= $url['url'] -%>..." status=$(curl -s -o /dev/null -w "%{http_code}" -I -XGET --insecure -m 3<%= $resolve %> <%= $url['url'] %>) if [ $status -eq <%= $url['status'] %> ]; then echo " OK." else echo " FAIL." ((result+=1)) fi <%- } %>