#!/usr/bin/python import py mailmandir = py.path.local('/www/mailman') if __name__ == '__main__': url = mailmandir.join('Mailman', 'mm_cfg.py').pyimport().DEFAULT_URL_HOST print "*** fixing all list urls to", url mailmandir.join('bin').chdir() out = py.process.cmdexec("python list_lists") tmpdir = py.path.local.mkdtemp() try: fix = tmpdir.join("fix_minus_one.py") fix.write(py.code.Source(""" def fix(m): print m.NumRequestsPending() m.Save() """)) imp = fix.dirpath() for line in out.split('\n'): if line.strip() and '-' in line: listname = line.split(' - ')[0].strip() py.process.cmdexec( "PYTHONPATH=%s python withlist -l -r %s.fix %s" % (imp, fix.purebasename, listname,)) print "fixed minus one", listname finally: tmpdir.remove()