summaryrefslogtreecommitdiff
path: root/cron
diff options
context:
space:
mode:
authorbwarsaw2002-08-28 16:06:15 +0000
committerbwarsaw2002-08-28 16:06:15 +0000
commit96b2a458409f8445f4978b74b082eea87263d88d (patch)
tree4de0dad9709ea1e97c1e1136e0bc50c6a3c35bce /cron
parent4752ce75de133dca091710a26c9d089d2e9b3f5a (diff)
downloadmailman-96b2a458409f8445f4978b74b082eea87263d88d.tar.gz
mailman-96b2a458409f8445f4978b74b082eea87263d88d.tar.zst
mailman-96b2a458409f8445f4978b74b082eea87263d88d.zip
Diffstat (limited to 'cron')
-rwxr-xr-xcron/senddigests45
1 files changed, 43 insertions, 2 deletions
diff --git a/cron/senddigests b/cron/senddigests
index d2bede973..77fc7a642 100755
--- a/cron/senddigests
+++ b/cron/senddigests
@@ -18,22 +18,63 @@
"""Dispatch digests for lists w/pending messages and digest_send_periodic set.
-Typically it's invoked via cron.
+Usage: %(PROGRAM)s [options]
+
+Options:
+ -h / --help
+ Print this message and exit.
+
+ -l listname
+ --listname=listname
+ Send the digest for the given list only, otherwise the digests for all
+ lists are sent out.
"""
+import sys
+import getopt
+
import paths
from Mailman import mm_cfg
from Mailman import Utils
from Mailman import MailList
+from Mailman.i18n import _
# Work around known problems with some RedHat cron daemons
import signal
signal.signal(signal.SIGCHLD, signal.SIG_DFL)
+PROGRAM = sys.argv[0]
+
+
+
+def usage(code, msg=''):
+ print >> sys.stderr, _(__doc__)
+ if msg:
+ print >> sys.stderr, msg
+ sys.exit(code)
+
def main():
- for listname in Utils.list_names():
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], 'hl:', ['help', 'listname='])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ if args:
+ usage(1)
+
+ listnames = []
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-l', '--listname'):
+ listnames.append(arg)
+
+ if not listnames:
+ listnames = Utils.list_names()
+
+ for listname in listnames:
mlist = MailList.MailList(listname, lock=0)
if mlist.digest_send_periodic:
mlist.Lock()