Sha256: cc86beeadaa4746304776b63132a558fb663fdd67c3c88b99e4eb4151788b4a2

Contents?: true

Size: 1.41 KB

Versions: 2

Compression:

Stored size: 1.41 KB

Contents

module DnsOne; class Util
    
  DOM_REGEX = /^[a-z0-9]+([\-\.][a-z0-9]+)*\.[a-z]{2,32}$/i

  class << self
    def die msg
      Log.f msg
      exit 1
    end

    def run cmd
        puts "Running #{cmd}..."
        system cmd
    end

    def has_systemd?
        File.exist?(`which systemctl`.strip) && 
        File.writable?('/lib/systemd/system')
    end

    def ensure_sytemd
        unless has_systemd?
            STDERR.puts "Systemd not available. Aborting." 
            exit 1
        end
    end

    def match_root stat
        stat.uid == 0 && stat.gid == 0
    end

    def last_mod constant
      constant.to_s.split('::').last
    end

    def log_result ip_address, domain_name, res_class, rcode, resp_log, from_cache
      fields = []

      fields << domain_name
      fields << Util.last_mod(res_class)
      fields << rcode
      fields << resp_log.map{ |rec|
          Util.last_mod(rec.res_class) + 
          ':' +
          [rec.val].flatten.join(',')
      }.join(';')
      fields << ip_address
      fields << (from_cache ? '1' : '0')

      fields.map!{|v| v.blank? ? '-' : v}

      Log.i "result: #{ fields.join ' ' }"
    end

    def const_underscore name
        name = name.to_s.dup
        name.gsub!('::', '/')
        name.gsub!(/([A-Z\d]+)([A-Z][a-z])/,'\1_\2')
        name.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
        name.tr!("-", "_")
        name.downcase!
        name
    end

  end 

end; end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
dns_one-0.5.5 lib/dns_one/util.rb
dns_one-0.5.4 lib/dns_one/util.rb