Code

allow negative items, helping construct forms
[roundup.git] / roundup / scripts / roundup_mailgw.py
index 6849a6fc9476dff0938d1945a7b935b07f2a38ad..65163d83905fa0045a2d55b984ff1416ef840737 100644 (file)
@@ -14,7 +14,7 @@
 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 # 
-# $Id: roundup_mailgw.py,v 1.7 2003-01-12 00:03:11 richard Exp $
+# $Id: roundup_mailgw.py,v 1.10 2003-04-24 04:27:32 richard Exp $
 
 # python version check
 from roundup import version_check
@@ -67,6 +67,11 @@ POP:
     pop server
  are both valid. The username and/or password will be prompted for if
  not supplied on the command-line.
+
+APOP:
+ Same as POP, but using Authenticated POP:
+    apop username:password@server
+
 ''')
     return 1
 
@@ -118,12 +123,23 @@ def main(argv):
                 return handler.do_pop(m.group('server'), m.group('user'),
                     m.group('pass'))
             return usage(argv, _('Error: pop specification not valid'))
+        elif source == 'apop':
+            m = re.match(r'((?P<user>[^:]+)(:(?P<pass>.+))?@)?(?P<server>.+)',
+                specification)
+            if m:
+                return handler.do_apop(m.group('server'), m.group('user'),
+                    m.group('pass'))
+            return usage(argv, _('Error: apop specification not valid'))
 
-        return usage(argv, _('Error: The source must be either "mailbox" or "pop"'))
+        return usage(argv, _('Error: The source must be either "mailbox", "pop" or "apop"'))
     finally:
         db.close()
 
 def run():
+    # time out after a minute if we can
+    import socket
+    if hasattr(socket, 'setdefaulttimeout'):
+        socket.setdefaulttimeout(60)
     sys.exit(main(sys.argv))
 
 # call main