On 22 February 2016 at 17:03, <ru...@apache.org> wrote: > Repository: whimsy > Updated Branches: > refs/heads/master c283f6795 -> 2075b050e > > > quick and dirty cross-check > > > Project: https://git-dual.apache.org/repos/asf/whimsy/repo > Commit: https://git-dual.apache.org/repos/asf/whimsy/commit/2075b050 > Tree: https://git-dual.apache.org/repos/asf/whimsy/tree/2075b050 > Diff: https://git-dual.apache.org/repos/asf/whimsy/diff/2075b050 > > Branch: refs/heads/master > Commit: 2075b050ed8cfbd65fdbbc945b5a569f828af859 > Parents: 5c728a6 > Author: Sam Ruby <ru...@intertwingly.net> > Authored: Mon Feb 22 12:02:53 2016 -0500 > Committer: Sam Ruby <ru...@intertwingly.net> > Committed: Mon Feb 22 12:03:36 2016 -0500 > > ---------------------------------------------------------------------- > www/members/attendance-xcheck.cgi | 38 ++++++++++++++++++++++++++++++++++ > 1 file changed, 38 insertions(+) > ---------------------------------------------------------------------- > > > https://git-dual.apache.org/repos/asf/whimsy/blob/2075b050/www/members/attendance-xcheck.cgi > ---------------------------------------------------------------------- > diff --git a/www/members/attendance-xcheck.cgi > b/www/members/attendance-xcheck.cgi > new file mode 100755 > index 0000000..1010801 > --- /dev/null > +++ b/www/members/attendance-xcheck.cgi > @@ -0,0 +1,38 @@ > +#!/usr/bin/ruby1.9.1 > +$LOAD_PATH.unshift File.realpath(File.expand_path('../../../lib', __FILE__)) > + > +require 'whimsy/asf' > +require 'json' > + > +# read in attendance > +meetings = ASF::SVN['private/foundation/Meetings'] > +json = JSON.parse(IO.read "#{meetings}/attendance.json") > +attend = json['matrix'].keys > + > +# cross check against members.txt
Unfortunately members.txt is not a good source for canonical public names. Also names with (nick) comments are truncated. This is presumably to cater for (deceased...) entries. I'll try to fix that. > +missing = [] > +ASF::Member.list.each do |id, info| > + missing << info[:name] unless attend.delete info[:name] or info['status'] > +end > +missing.delete '' > + > +# produce HTML > +_html do > + _h1_ 'members.txt vs attendance.json cross-check' > + > + _h2_ 'Listed as attending a members meeting, but not in members.txt' > + > + _ul do > + attend.sort.each do |name| > + _li name > + end > + end > + > + _h2_ 'Listed in members.txt but not listed as attending a members meeting' > + > + _ul do > + missing.sort.each do |name| > + _li name > + end > + end > +end >