From 5200740ee2d858e1e75643a41e7085e796ef420c Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Sun, 9 Sep 2012 19:40:47 +0200 Subject: [PATCH] New 'verbose' option. By default, the script doesn't display anything. fix #306 --- .../amavis/management/commands/qcleanup.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/modoboa/extensions/amavis/management/commands/qcleanup.py b/modoboa/extensions/amavis/management/commands/qcleanup.py index d383f3b2c..d724c93b2 100644 --- a/modoboa/extensions/amavis/management/commands/qcleanup.py +++ b/modoboa/extensions/amavis/management/commands/qcleanup.py @@ -17,14 +17,24 @@ class Command(BaseCommand): action='store_true', default=False, help='Activate debug output'), + make_option('--verbose', + action='store_true', + default=False, + help='Display informational messages') ) + def __vprint(self, msg): + if not self.verbose: + return + print msg + def handle(self, *args, **options): if options["debug"]: import logging l = logging.getLogger("django.db.backends") l.setLevel(logging.DEBUG) l.addHandler(logging.StreamHandler()) + self.verbose = options["verbose"] Amavis().load() @@ -36,19 +46,19 @@ class Command(BaseCommand): app="amavis") == "yes": flags += ['R'] - print "Deleting marked messages..." + self.__vprint("Deleting marked messages...") ids = Msgrcpt.objects.filter(rs__in=flags).values("mail_id") for msg in Msgs.objects.filter(mail_id__in=ids): if not msg.msgrcpt_set.exclude(rs__in=flags).count(): msg.delete() - print "Deleting messages older than %d days..." % max_messages_age + self.__vprint("Deleting messages older than %d days..." % max_messages_age) limit = int(time.time()) - (max_messages_age * 24 * 3600) Msgs.objects.filter(time_num__lt=limit).delete() - print "Deleting unreferenced e-mail addresses..." + self.__vprint("Deleting unreferenced e-mail addresses...") for maddr in Maddr.objects.all(): if not len(maddr.msgs_set.all()) and not len(maddr.msgrcpt_set.all()): maddr.delete() - print "Done." + self.__vprint("Done.")