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