Sha256: 42ee28381d8f971d37a6152d306b4ccad293c27962bdb1c4cb68496edad55664

Contents?: true

Size: 502 Bytes

Versions: 6

Compression:

Stored size: 502 Bytes

Contents

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

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
capistrano-twingly-4.0.4 lib/capistrano/twingly/tasks/servers_from_srv_record.rake
capistrano-twingly-4.0.3 lib/capistrano/twingly/tasks/servers_from_srv_record.rake
capistrano-twingly-4.0.2 lib/capistrano/twingly/tasks/servers_from_srv_record.rake
capistrano-twingly-4.0.1 lib/capistrano/twingly/tasks/servers_from_srv_record.rake
capistrano-twingly-4.0.0 lib/capistrano/twingly/tasks/servers_from_srv_record.rake
capistrano-twingly-3.0.0 lib/capistrano/twingly/tasks/servers_from_srv_record.rake