Module: Pygmy::ResolvOsx

Defined in:
lib/pygmy/resolv_osx.rb

Class Method Summary collapse

Class Method Details

.clean?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/pygmy/resolv_osx.rb', line 29

def self.clean?
  self.system!("removing resolverfile", "sudo", "rm", "-f", self.resolver_file)
end

.create_resolver?Boolean

Returns:

  • (Boolean)


15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/pygmy/resolv_osx.rb', line 15

def self.create_resolver?
  puts "setting up DNS resolution, this may require sudo".green
  unless self.resolver_dir.directory?
    self.system!("creating #{self.resolver_dir}", "sudo", "mkdir", "-p", self.resolver_dir)
  end
  Tempfile.open('amazeeio_pygmy-dnsmasq') do |f|
    f.write(self.resolver_contents)
    f.close
    self.system!("creating #{self.resolver_file}", "sudo", "cp", f.path, self.resolver_file)
    self.system!("creating #{self.resolver_file}", "sudo", "chmod", "644", self.resolver_file)
  end
  self.system!("restarting mDNSResponder", "sudo", "killall", "mDNSResponder")
end

.resolver_contentsObject



37
38
39
40
41
42
# File 'lib/pygmy/resolv_osx.rb', line 37

def self.resolver_contents; <<-EOS.gsub(/^      /, '')
  # Generated by amazeeio pygmy
  nameserver 127.0.0.1
  port 53
  EOS
end

.resolver_dirObject



7
8
9
# File 'lib/pygmy/resolv_osx.rb', line 7

def self.resolver_dir
  Pathname("/etc/resolver")
end

.resolver_fileObject



11
12
13
# File 'lib/pygmy/resolv_osx.rb', line 11

def self.resolver_file
  "/etc/resolver/docker.amazee.io"
end

.resolver_file_contentsObject



44
45
46
# File 'lib/pygmy/resolv_osx.rb', line 44

def self.resolver_file_contents
  File.read(self.resolver_file) unless !File.file?(self.resolver_file)
end

.resolver_file_exists?Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/pygmy/resolv_osx.rb', line 48

def self.resolver_file_exists?
  (self.resolver_file_contents == self.resolver_contents)
end

.system!(step, *args) ⇒ Object



33
34
35
# File 'lib/pygmy/resolv_osx.rb', line 33

def self.system!(step, *args)
  system(*args.map(&:to_s)) || raise("Error with the #{name} daemon during #{step}")
end