From b36f207bb217809b4e2404d92ee38359768f31b5 Mon Sep 17 00:00:00 2001 From: dev <dev@welterde.de> Date: Sat, 24 Oct 2009 15:59:15 +0000 Subject: [PATCH] small utility script for codeswarm --- codeswarm-extractor.rb | 88 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100755 codeswarm-extractor.rb diff --git a/codeswarm-extractor.rb b/codeswarm-extractor.rb new file mode 100755 index 0000000000..6353390143 --- /dev/null +++ b/codeswarm-extractor.rb @@ -0,0 +1,88 @@ +#!/usr/bin/env ruby1.9 + +require 'date' + +MAPPING={ + '"zzz@mail.i2p"' => 'zzz', + '"z3d@mail.i2p"' => 'dr|z3d', + '"sponge@mail.i2p"' => 'sponge', + '"mkvore-commit@mail.i2p"' => 'mkvore', + '"complication@mail.i2p"' => 'complication', + '"dev@welterde.de"' => 'welterde', + '"Oldaris@mail.i2p"' => 'oldaris', + '"mathiasdm@mail.i2p"' => 'mathiasdm', + '"amiga4000@mail.i2p"' => 'amiga4000', + '"dream@mail.i2p"' => 'dream', + '"walking@mail.i2p"' => 'walking', + '"jrandom@i2p.net"' => 'jrandom', + '"jrandom-transfer@i2p.net"' => 'jrandom', + '"transport@welterde.de"' => 'welterde', + '"echelon@mail.i2p"' => 'eche|on' + '"z3d@i2p"' => 'dr|z3d', + '"cervantes@mail.i2p"' => 'cervantes', + '"BlubMail@mail.i2p"' => 'BlubMail' +} + +roots=[] +`mtn automate roots`.split("\n").map {|n| n.strip}.each do |rev| + roots << rev +end + +revs = [] +roots.each do |root| + `mtn automate descendents #{root}`.split("\n").map {|n| n.strip}.each do |rev| + revs << rev + end +end +#while roots.size > 0 do +# rev = roots.pop +# revs << rev +# next unless rev.class == String +# results = `mtn automate children #{rev}`.split("\n").map {|n| n.strip} +# results.each do |rev| +# roots << rev +# end if results.size > 0 +#end + +# open the file +f=File::open('/tmp/i2p.xml', 'w') +f << '<?xml version="1.0"?>' +f << "\n" +f << '<file_events>' +f << "\n" +d=[] +revs.each do |rev| + print rev + print " - " + certs_=`mtn automate certs #{rev}`.split("\n").map{|l|l2=l.strip; l2.split(" ", 2) if l2 != ""} + author=certs_[3][1] + date=nil + certs_.each_index do |i| + next unless certs_[i] + if certs_[i][1] + date=certs_[i+1][1] if certs_[i][1].strip === '"date"' + end + end + info=`mtn automate get_revision #{rev}`.strip.split("\n").map{|l|l2=l.strip; l2.split(" ", 2) if l2 != ""} + print date + date=DateTime.parse(date).to_time.to_i*1000 + print " - " + print date + print " - " + puts author + info.each do |line| + next unless line + #f << "<event date=\"#{DateTime.parse(date).to_time.to_i*1000}\" filename=\"#{line[1].strip[1..-2]}\" author=\"#{MAPPING[author] or author[1..-2]}\" />\n" if line[0].strip == "patch" + d << [date, line[1].strip[1..-2], (MAPPING[author] or author[1..-2])] if line[0].strip == "patch" + end +end + +d.sort! {|a,b| a[0] <=> b[0]} + +d.each do |a| + f << "<event date=\"#{a[0]}\" filename=\"#{a[1]}\" author=\"#{a[2]}\" />\n" +end + +f << '</file_events>' +f << "\n" +f.close() -- GitLab