Hi there
I first posted this patch in January and then several times again
(e.g. http://svn.haxx.se/dev/archive-2006-02/0293.shtml). Since that
the patch was neither committed nor refused.
So I kindly ask you again to commit this patch to mailer.py (or to
definitely refuse) it.
If there are objections about the new parameter 'to_addr_split_char'
here are some alternatives:
1. Change the default behavior from whitespace to comma
-> May result in problems for people updating to this version
2. Introduce a new parameter to specify the separator
-> As I did in my patch
3. Introduce a new parameter for to_addr which will be splitted
by comma and deprecate the current one
-> That's what Greg Stein proposed
4. Introduce a new parameter for to_addr which will be splitted
by comma and then add these mail addresses to the ones given
by the current to_addr parameter
-> No deprecation, no update problems, but two parameters for
the same thing
Thank you very much!
Mathias
[[[
* tools/hook-scripts/mailer/mailer.py
- new option 'to_addr_split_char' added which allows to use another character but the default whitespaces to separate different mail addresses
- it's now possible to use capital letters in option values which will be passed through a map
* tools/hook-scripts/mailer/mailer.conf.example
- new option 'to_addr_split_char' added which allows to use another character but the default whitespaces to separate different mail addresses
- added a hint to the description of the mapping process
]]]
--- tools/hook-scripts/mailer/mailer.py.new 2006-01-19 22:02:53.150000000 +0100
+++ tools/hook-scripts/mailer/mailer.py.2 2006-01-20 10:39:41.171196600 +0100
@@ -183,9 +183,15 @@
OutputBase.__init__(self, cfg, repos, prefix_param)
def start(self, group, params):
- # whitespace-separated list of addresses; split into a clean list:
- self.to_addrs = \
- filter(None, string.split(self.cfg.get('to_addr', group, params)))
+ # whitespace (or as set by to_addr_split_char)-separated list
+ # of addresses; split into a clean list:
+ if self.cfg.is_set('general.to_addr_split_char'):
+ self.to_addrs = \
+ filter(None, string.split(self.cfg.get('to_addr', group, params), \
+ self.cfg.general.to_addr_split_char))
+ else:
+ self.to_addrs = \
+ filter(None, string.split(self.cfg.get('to_addr', group, params)))
self.from_addr = self.cfg.get('from_addr', group, params) \
or self.repos.author or 'no_author'
self.reply_to = self.cfg.get('reply_to', group, params)
@@ -1109,7 +1115,8 @@
# then just return the value unchanged.
setattr(self.maps, optname,
lambda value,
- sect=getattr(self, sectname): getattr(sect, value,
+ sect=getattr(self, sectname): getattr(sect,
+ value.lower(),
value))
# mark for removal when all optnames are done
if sectname not in mapsections:
--- tools/hook-scripts/mailer/mailer.conf.example.new 2006-01-19 22:02:53.280000000 +0100
+++ tools/hook-scripts/mailer/mailer.conf.example.2 2006-01-20 10:35:59.913921200 +0100
@@ -27,6 +27,12 @@
#smtp_username = example
#smtp_password = example
+# If this option is set to a character this character will be used
+# to split the mail addresses given to_addr.
+# If this option is not set all whitespace characters (but no comma)
+# are used for splitting.
+#to_addr_split_char = ,
+
# --------------------------------------------------------------------------
#
@@ -167,7 +173,8 @@
from_addr = invalid@example.com
# The default To: addresses for message. One or more addresses,
-# separated by whitespace (no commas):
+# separated by whitespace (no commas) or the character set at
+# to_addr_split_char.
to_addr = invalid@example.com
# If this is set, then a Reply-To: will be inserted into the message.
@@ -242,9 +249,18 @@
# are made here in the [maps] section.
#
# When an option is accessed, the value is loaded from the configuration
-# file and all %(NAME)s substitutions are performed. The resulting value
-# is then passed through the map. If a map entry is not available for
-# the value, then it will be used unchanged.
+# file and all %(NAME)s substitutions are performed. The resulting
+# value(*) is then passed through the map. If a map entry is not available
+# for the value, then it will be used unchanged(**).
+#
+# (*) In fact the value passing and comparing is done case insensitive so
+# don't use values which only differ in case.
+#
+# (**) unchanged means the original value, i. e. no case change is done.
+#
+# Please note that a colon ':' is also considered as separator between
+# option and value. For mapping of filepaths under windows see example 2
+# below.
#
# The format to declare a map is:
#
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed May 3 11:06:54 2006