class Landrush::Cap::Darwin::ConfigureVisibilityOnHost
Attributes
config_dir[W]
sudo[W]
Public Class Methods
configure_visibility_on_host(env, _ip, tlds)
click to toggle source
# File lib/landrush/cap/host/darwin/configure_visibility_on_host.rb, line 8 def configure_visibility_on_host(env, _ip, tlds) @env = env tlds.each do |tld| if contents_match?(tld) info "Host DNS resolver config for TLD '#{tld}' looks good." else info "Need to create /etc/resolver entry for TLD '#{tld}'" write_config!(tld) end end end
Private Class Methods
config_dir()
click to toggle source
# File lib/landrush/cap/host/darwin/configure_visibility_on_host.rb, line 27 def config_dir @config_dir ||= '/etc/resolver' end
config_file(tld)
click to toggle source
# File lib/landrush/cap/host/darwin/configure_visibility_on_host.rb, line 31 def config_file(tld) File.join(config_dir, tld) end
contents_match?(tld)
click to toggle source
# File lib/landrush/cap/host/darwin/configure_visibility_on_host.rb, line 47 def contents_match?(tld) config_file = config_file(tld) File.exist?(config_file) && File.read(config_file) == desired_contents end
desired_contents()
click to toggle source
# File lib/landrush/cap/host/darwin/configure_visibility_on_host.rb, line 39 def desired_contents <<-EOS.gsub(/^ /, '') # Generated by landrush, a vagrant plugin nameserver 127.0.0.1 port #{Server.port} EOS end
info(msg)
click to toggle source
# File lib/landrush/cap/host/darwin/configure_visibility_on_host.rb, line 35 def info(msg) @env.ui.info("[landrush] #{msg}") unless @env.nil? end
sudo()
click to toggle source
# File lib/landrush/cap/host/darwin/configure_visibility_on_host.rb, line 23 def sudo @sudo ||= 'sudo' end
write_config!(tld)
click to toggle source
# File lib/landrush/cap/host/darwin/configure_visibility_on_host.rb, line 52 def write_config!(tld) info 'Momentarily using sudo to put the host config in place...' system "#{sudo} mkdir #{config_dir}" unless File.directory?(config_dir) Tempfile.open('vagrant_landrush_host_config') do |f| f.write(desired_contents) f.close system "#{sudo} cp #{f.path} #{config_file(tld)}" system "#{sudo} chmod 644 #{config_file(tld)}" end end