diff --git a/lib/linux_admin.rb b/lib/linux_admin.rb index 58b87eb..efc46b5 100644 --- a/lib/linux_admin.rb +++ b/lib/linux_admin.rb @@ -30,6 +30,7 @@ require 'linux_admin/scap' require 'linux_admin/time_date' require 'linux_admin/ip_address' +require 'linux_admin/dns' module LinuxAdmin extend Common diff --git a/lib/linux_admin/dns.rb b/lib/linux_admin/dns.rb new file mode 100644 index 0000000..f8f4b37 --- /dev/null +++ b/lib/linux_admin/dns.rb @@ -0,0 +1,31 @@ +module LinuxAdmin + class Dns + attr_accessor :filename + attr_accessor :nameservers + attr_accessor :search_order + + def initialize(filename = "/etc/resolv.conf") + @filename = filename + reload + end + + def reload + @search_order = [] + @nameservers = [] + + File.read(@filename).split("\n").each do |line| + if line =~ /^search .*/ + @search_order += line.split(/^search\s+/)[1].split + elsif line =~ /^nameserver .*/ + @nameservers.push(line.split[1]) + end + end + end + + def save + contents = "search #{@search_order.join(" ")}\n" + @nameservers.each { |ns| contents += "nameserver #{ns}\n" } + File.write(@filename, contents) + end + end +end diff --git a/spec/dns_spec.rb b/spec/dns_spec.rb new file mode 100644 index 0000000..ad0788c --- /dev/null +++ b/spec/dns_spec.rb @@ -0,0 +1,75 @@ +describe LinuxAdmin::Dns do + RESOLV_CONF = <