summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeffrey C. Ollie <jeff@ocjtech.us>2008-12-04 16:25:04 -0600
committerJeffrey C. Ollie <jeff@ocjtech.us>2008-12-04 16:25:04 -0600
commitb994df88eb63beb6b7ce6972a26bd6b48a18c86a (patch)
treeb207a45d6fe171878d9de57813054df51d6008a5
parent0f8301b3f6fef02cbb5d0ef58323dfad28f4aacd (diff)
downloadcvsmessaging-b994df88eb63beb6b7ce6972a26bd6b48a18c86a.tar.gz
cvsmessaging-b994df88eb63beb6b7ce6972a26bd6b48a18c86a.tar.xz
cvsmessaging-b994df88eb63beb6b7ce6972a26bd6b48a18c86a.zip
Build list of email addrs to receive email.
-rwxr-xr-xloginfo-consumer18
-rwxr-xr-xloginfo-producer6
2 files changed, 24 insertions, 0 deletions
diff --git a/loginfo-consumer b/loginfo-consumer
index 4359c00..036be88 100755
--- a/loginfo-consumer
+++ b/loginfo-consumer
@@ -18,6 +18,7 @@
# <http://www.gnu.org/licenses/>.
import os
+import re
from qpid.util import connect
from qpid.connection import Connection
@@ -44,6 +45,13 @@ def get_diff(cvsroot, directory, filename, old_version, new_version):
status = fp.close()
return diff
+package_re = re.compile(r'^(?:rpms|devel)/([^/]+)(?:/([^/]+))?')
+
+def append_package_owner_email(directory, to):
+ package_match = package_re.match(directory)
+ if package_match and package_match.group(1):
+ to.append('%s-owner@fedoraproject.org' % package_match.group(1))
+
host = '127.0.0.1'
port = 5672
@@ -92,6 +100,16 @@ while True:
print etree.tostring(root_element, pretty_print = True)
+ to = []
+ for email_element in root_element.xpath('/loginfo/notification/email'):
+ email = email_element.text
+ if email == '%%OWNER%%':
+ append_package_owner_email(directory, to)
+ else:
+ to.append(email)
+
+ print to
+
except Empty:
print 'No more messages!'
break
diff --git a/loginfo-producer b/loginfo-producer
index caf6626..d1b7842 100755
--- a/loginfo-producer
+++ b/loginfo-producer
@@ -50,6 +50,12 @@ fullname = pwd_entry[4].decode('utf-8')
fullname_element = etree.SubElement(root_element, 'fullname')
fullname_element.text = fullname
+notification_element = etree.SubElement(root_element, 'notification')
+
+for arg in sys.argv[2:]:
+ email_element = etree.SubElement(notification_element, 'email')
+ email_element.text = arg
+
socket = connect(host, port)
connection = Connection(sock = socket)
connection.start()