diff options
author | Jeffrey C. Ollie <jeff@ocjtech.us> | 2008-12-04 16:25:04 -0600 |
---|---|---|
committer | Jeffrey C. Ollie <jeff@ocjtech.us> | 2008-12-04 16:25:04 -0600 |
commit | b994df88eb63beb6b7ce6972a26bd6b48a18c86a (patch) | |
tree | b207a45d6fe171878d9de57813054df51d6008a5 | |
parent | 0f8301b3f6fef02cbb5d0ef58323dfad28f4aacd (diff) | |
download | cvsmessaging-b994df88eb63beb6b7ce6972a26bd6b48a18c86a.tar.gz cvsmessaging-b994df88eb63beb6b7ce6972a26bd6b48a18c86a.tar.xz cvsmessaging-b994df88eb63beb6b7ce6972a26bd6b48a18c86a.zip |
Build list of email addrs to receive email.
-rwxr-xr-x | loginfo-consumer | 18 | ||||
-rwxr-xr-x | loginfo-producer | 6 |
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() |