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
>

Reply via email to