Barry, this never made it into 2.0.x

Any chance it could make it into CVS?
(I've updated
https://sourceforge.net/tracker/index.php?func=detail&aid=413257&group_id=103&atid=300103
)

Marc

--- remove_members.mailman      Wed Dec 12 08:57:41 2001
+++ remove_members      Wed Dec 12 08:57:38 2001
@@ -37,6 +37,8 @@
         Print this help message and exit.
 
     listname is the name of the mailing list to use.
+       (_alllists_' is a special list name that checks all the lists for the
+       Emails to remove)
 
     addr1 ... are additional addresses to remove.
 
@@ -47,6 +49,7 @@
 
 import paths
 from Mailman import MailList
+from Mailman import Utils
 from Mailman import Errors
 from Mailman.i18n import _
 
@@ -84,7 +87,12 @@
     if len(args) < 1:
         usage(1)
 
-    listname = args[0].lower().strip()
+    rlistname = args[0].lower().strip()
+    if rlistname == "_alllists_":
+       listnames = Utils.list_names()
+    else:
+       listnames = []
+       listnames.append(rlistname)
     addresses = args[1:]
     filename = None
     all = 0
@@ -103,26 +111,32 @@
         except IOError:
             print _('Could not open file for reading: %(filename)s.')
 
-    try:
-        # open locked
-        mlist = MailList.MailList(listname)
-    except Errors.MMListError, e:
-        print _('No such list: %(listname)s')
-        sys.exit(1)
-
-    if all:
-        addresses = mlist.getMembers()
-
-    try:
-        for addr in addresses:
-            try:
-                mlist.ApprovedDeleteMember(addr)
-            except Errors.MMNoSuchUserError:
-                print _("User `%(addr)s' not found.")
-    finally:
-        # Hmm, should it be all or nothing?
-        mlist.Save()
-        mlist.Unlock()
+    for listname in listnames:
+       try:
+           # open locked
+           mlist = MailList.MailList(listname)
+       except Errors.MMListError, e:
+           print 'Error opening list "%s": %s... skipping.' % (listname, e)
+            continue
+
+       if all:
+           addresses = mlist.GetMembers() + mlist.GetDigestMembers()
+
+       try:
+           for addr in addresses:
+               try:
+                   mlist.DeleteMember(addr)
+               except Errors.MMNoSuchUserError:
+                   if rlistname != "_alllists_":
+                       print "User `%s' not found." % addr
+               else:
+                   if rlistname == "_alllists_":
+                       print "User `%s' removed from list `%s'" % (addr, listname)
+                   
+       finally:
+           # Hmm, should it be all or nothing?
+           mlist.Save()
+           mlist.Unlock()
 
 
 
-- 
Microsoft is to operating systems & security ....
                                      .... what McDonalds is to gourmet cooking
  
Home page: http://marc.merlins.org/   |   Finger [EMAIL PROTECTED] for PGP key

_______________________________________________
Mailman-Developers mailing list
[EMAIL PROTECTED]
http://mail.python.org/mailman/listinfo/mailman-developers

Reply via email to