| 
					
				 | 
			
			
				@@ -26,8 +26,8 @@ import subprocess 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import fcntl 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import select 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import fnmatch 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import argparse 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-from argparse import OptionParser, OptionGroup # needs python >= 2.3 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # }}} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # {{{ Class Proc 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -230,24 +230,48 @@ class MailQueue: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # {{{ main 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 def main(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    usage = "%prog " + _HELP 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    desc = _DESC 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    parser = OptionParser(usage=usage, description=desc, version=("%s %s" % (_NAME, _VERSION))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    opts = OptionGroup(parser, "filters") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    opts.add_option("-e", "--email", dest="email", type="string", metavar="PATTERN", help="select entries in queue with email matching PATTERN") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    parser.set_defaults(email=None) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    opts.add_option("-m", "--msg", dest="msg", type="string", metavar="PATTERN", help="select entries in queue with error message matching PATTERN") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    parser.set_defaults(msg=None) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    opts.add_option("-l", "--size-lower", dest="lowsize", type="int", metavar="SIZE", help="select entries in queue with size lower than SIZE bytes") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    parser.set_defaults(lowsize=0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    opts.add_option("-u", "--size-upper", dest="upsize", type="int", metavar="SIZE", help="select entries in queue with size upper than SIZE bytes") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    parser.set_defaults(upsize=0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    opts.add_option("-a", "--active", dest="active", default=False, action="store_true", help="select 'active' entries in queue (default: no)") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    opts.add_option("-o", "--hold", dest="hold", default=False, action="store_true", help="select 'on hold' entries in queue (default: no)") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    parser.add_option_group(opts) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (options, args) = parser.parse_args() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    parser = argparse.ArgumentParser(prog=_NAME, description=_DESC) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    parser.add_argument( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '-v', '--version', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        action='version', version=_VERSION) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    parser.add_argument( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '-e', '--email', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        dest='email', default=None, metavar='PATTERN', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        help='select entries in queue with email matching PATTERN') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    parser.add_argument( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '-m', '--msg', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        dest='msg', default=None, metavar='PATTERN', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        help='select entries in queue with error message matching PATTERN') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    parser.add_argument( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '-l', '--size-lower', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        dest='lowsize', default=0, type=int, metavar='SIZE', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        help='select entries in queue with size lower than SIZE bytes') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    parser.add_argument( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '-u', '--size-upper', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        dest='upsize', default=0, type=int, metavar='SIZE', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        help='select entries in queue with size upper than SIZE bytes') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    parser.add_argument( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '-a', '--active', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        dest='active', default=False, action='store_true', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        help='select "active" entries in queue (default: no)') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    parser.add_argument( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '-o', '--hold', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        dest='hold', default=False, action='store_true', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        help='select "on hold" entries in queue (default: no)') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    subparsers = parser.add_subparsers(dest='action') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    subparsers.add_parser( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        'list', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        help='Show a detailed listing of the selected entries') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    subparsers.add_parser( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        'parse', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        help='Show a listing of the selected entries in a machine readable format') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    subparsers.add_parser( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        'del', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        help='Delete the selected entries') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    options = parser.parse_args() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if options.action is None: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        options.action = 'list' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     m = MailQueue() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     m.add_filter("email", options.email) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -257,16 +281,10 @@ def main(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     m.add_filter("active", options.active) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     m.add_filter("hold", options.hold) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if args == []: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        m.cmd_list() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    elif args[0] == "list": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        m.cmd_list() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    elif args[0] == "parse": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        m.cmd_parse() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    elif args[0] == "del": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        m.cmd_del() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if 'cmd_' + options.action not in dir(m): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        parser.print_help() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        print("%s %s" % (_NAME, _HELP)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        getattr(m, 'cmd_' + options.action)() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 if __name__ == "__main__": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     main() 
			 |