You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@whimsical.apache.org by cu...@apache.org on 2018/03/21 13:28:35 UTC
[whimsy] branch master updated: Helper to create IRC attendance
lines for proxies
This is an automated email from the ASF dual-hosted git repository.
curcuru pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/whimsy.git
The following commit(s) were added to refs/heads/master by this push:
new d5c6a0c Helper to create IRC attendance lines for proxies
d5c6a0c is described below
commit d5c6a0ce9f12479e83486541dd6048a963417579
Author: Shane Curcuru <as...@shanecurcuru.org>
AuthorDate: Wed Mar 21 09:28:29 2018 -0400
Helper to create IRC attendance lines for proxies
---
tools/proxyhelper.rb | 44 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)
diff --git a/tools/proxyhelper.rb b/tools/proxyhelper.rb
new file mode 100644
index 0000000..d9c5daa
--- /dev/null
+++ b/tools/proxyhelper.rb
@@ -0,0 +1,44 @@
+#!/usr/bin/env ruby
+# Analyze proxies file and output data to remind proxies of IRC attendance lines
+# TODO Add function to email proxies with their info
+# TODO Add function to cross-check irc log that all proxy/attendee were marked
+
+$LOAD_PATH.unshift File.realpath(File.expand_path('../../lib', __FILE__))
+require 'whimsy/asf'
+require 'mail'
+
+MEETINGS = ASF::SVN['private/foundation/Meetings']
+
+# Get IRC attendance copy/paste lines for all proxies at a meeting
+# @param meeting dir name of current meeting
+# @return reminders {"proxy@apache.org" => ["IRC line", ...]}
+# @see foundation/Meetings/*.rb for other scripts that deal with
+# IRC log parsing, attendance marking, and proxy handling
+def reminder_lines(meeting = File.basename(Dir["#{MEETINGS}/2*"].sort.last).untaint)
+ lines = IO.read("#{MEETINGS}/#{meeting}/proxies")
+ proxylist = lines.scan(/\s\s(.{25})(.*?)\((.*?)\)/).map { |l| [l[0].strip, l[1].strip, l[2]]} # [["Shane Curcuru ", "David Fisher ", "wave"], ...]
+ copyproxy = Hash.new{|h,k| h[k] = [] }
+ proxylist.each do |arr|
+ copyproxy[arr[0]] << "#{arr[2].ljust(12)} | #{arr[1].strip} (proxy)"
+ end
+ copyproxy.delete('<name>')
+ reminders = {}
+ copyproxy.each do |nam, proxies|
+ user = ASF::Person.list("(cn=#{nam})")
+ if user.length == 1 # Copy to new array with their email instead of cn
+ reminders[user[0].mail[0]] = ["#{user[0].id.ljust(12)} | #{user[0].cn}"]
+ proxies.each do |l|
+ reminders[user[0].mail[0]] << "#{l}"
+ end
+ else
+ # "Bogus: ASF::Person.list(#{nam}) not found, skipped!"
+ end
+ end
+ return reminders
+end
+
+#### Main method - TODO needs to be integrated into meeting process
+puts "START: reminder_lines()"
+p = reminder_lines
+puts p
+
--
To stop receiving notification emails like this one, please contact
curcuru@apache.org.