New 'verbose' option. By default, the script doesn't display anything.

fix #306
This commit is contained in:
Antoine Nguyen
2012-09-09 19:40:47 +02:00
parent 3f91dd9c9d
commit 5200740ee2
@@ -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.")