blob: 86aa16a7d30596626b00bf488a7356e369a1f357 [file] [log] [blame]
#!/usr/bin/env ruby
### INITIAL RELEASE - SUBJECT TO CHANGE ###
$LOAD_PATH.unshift '/srv/whimsy/lib'
require 'whimsy/asf'
require 'whimsy/asf/memapps'
require 'wunderbar'
require 'yaml'
file = File.join(ASF::SVN.find!('emeritus-involuntary'),'emeritus-involuntary.yml')
forced = Set.new
YAML.load_file(file).each{|k,v| v.each{|w| forced.add w}}
exmembers = ASF::Member.emeritus.map {|id| ASF::Person.find(id)}
ASF::Person.preload(['cn'], exmembers) # speed up
files = Hash[ASF::EmeritusFiles::listnames.map{|i| [i,'NAK']}]
nofiles = Hash.new()
exmembers.each { |m|
ma = ASF::EmeritusFiles.find(m)
if ma
files[ma] = 'OK'
else
nofiles[m.name]=m
end
}
_html do
_style %{
table {border-collapse: collapse}
table, th, td {border: 1px solid black}
td {padding: 3px 6px}
tr:hover td {background-color: #FF8}
th {background-color: #a0ddf0}
}
_h1 'Compare members.txt with emeritus (**DRAFT**)'
_h2 'Files in emeritus that do not match any ASF member names'
_table_ do
_tr do
_th 'Name'
end
files.select {|k,v| v == 'NAK'}.sort_by{|k| k[0].split('-').pop}.each do |k,v|
_tr do
_td do
_a k, href: "https://svn.apache.org/repos/private/documents/emeritus/#{k}", target: '_blank'
end
end
end
end
_h2 'Emeritus entries in members.txt which do not appear to have a matching emeritus file'
_table_ do
_tr do
_th 'Availid'
_th 'ICLA'
_th 'Public Name'
_th 'Legal Name'
_th 'Member.txt Name'
end
nofiles.sort_by{|k,v| v.member_name}.each do |k,v|
person = v
if forced.delete? person.member_name
next
end
_tr do
_td do
_a k, href: "https://whimsy.apache.org/roster/committer/#{k}", target: '_blank'
end
_td do
if person.icla && person.icla.claRef
file = ASF::ICLAFiles.match_claRef(person.icla.claRef.untaint)
if file
_a person.icla.claRef, href: "https://svn.apache.org/repos/private/documents/iclas/#{file}", target: '_blank'
else
_ ''
end
else
_ ''
end
end
_td (person.icla.name rescue '')
_td (person.icla.legal_name rescue '')
_td person.member_name
end
end
end
if forced.size > 0
_h2 'Files in emeritus-involuntary.yml that do not match any ASF emeritus member names'
_ul do
forced.each do |n|
_li n
end
end
end
end