#! @PYTHON@ # # Copyright (C) 2006-2018 by the Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, # USA. """Show the contents of one or more Mailman queue files. Usage: show_qfiles [options] qfile ... Options: -q / --quiet Don't print `helpful' message delimiters. -h / --help Print this text and exit. Example: show_qfiles qfiles/shunt/*.pck """ import sys import getopt from cPickle import load import paths from Mailman.i18n import C_ try: True, False except NameError: True = 1 False = 0 def usage(code, msg=''): if code: fd = sys.stderr else: fd = sys.stdout print >> fd, C_(__doc__) if msg: print >> fd, msg sys.exit(code) def main(): try: opts, args = getopt.getopt(sys.argv[1:], 'hq', ['help', 'quiet']) except getopt.error, msg: usage(1, msg) quiet = False for opt, arg in opts: if opt in ('-h', '--help'): usage(0) elif opt in ('-q', '--quiet'): quiet = True if not args: usage(1, "Not enough arguments") for filename in args: if not quiet: print '====================>', filename fp = open(filename) if filename.endswith(".pck"): msg = load(fp) data = load(fp) if data.get('_parsemsg'): sys.stdout.write(msg) else: sys.stdout.write(msg.as_string()) else: sys.stdout.write(fp.read()) if __name__ == '__main__': main()