o = [] doms = [] Domains = {} def dom_dump(o, doms) doms.each do |dom| if !Domains[dom] Domains[dom] = true puts "INSERT INTO zones (name) VALUES ('#{dom}');" end o.each do |n| if n[0].upcase == 'MX' puts "INSERT INTO records (zone_id, ttl, name, type, content, prio) VALUES ((select id from zones where name = '#{dom}'), 3600, '#{dom}', '#{n[0].upcase}', '#{n[1].split(' ')[1]}', #{n[1].split(' ')[0]});" else puts "INSERT INTO records (zone_id, ttl, name, type, content) VALUES ((select id from zones where name = '#{dom}'), 3600, '#{dom}', '#{n[0].upcase}', '#{n[1]}');" end end end end ARGF.each_line do |l| case l when /^$/ dom_dump(o, doms) o = [] doms = [] when /(.*)Record: (.*)/ o << [$1, $2] when /associatedDomain: (.*)/ doms << $1 end end