require 'resolv'
SRV_RECORDS = %w[
_rubyapps._tcp.sth.twingly.network
]
resolver = Resolv::DNS.new
servers = SRV_RECORDS.map do |srv_record|
resolver.getresources(srv_record, Resolv::DNS::Resource::IN::SRV)
end.flatten.map(&:target).map(&:to_s)
raise “Can't find any servers, no records for #{SRV_RECORDS}” if servers.empty?
set :servers_from_srv_record, servers
namespace :list do
desc 'List servers from SRV records' task :servers do servers.each { |server| puts server } end
end