import os, sys
from datetime import datetime

from django.core.management.base import BaseCommand, CommandError

from fileupload.models import TempFile

class Command(BaseCommand):
    help = "Deletes expired temporary files, registered via fileupload.models.TempFile"

    def handle(self, *args, **options):
        print u'Temporary files cleanup started ...'
        for temp_file in TempFile.objects.filter(delete_after__lte = datetime.now()):

            try:
                os.remove(unicode(temp_file))
            except OSError, e:
                sys.stderr.write(u'Error during file deletion\n'.encode('utf-8'))
                sys.stderr.write((unicode(e)+'\n').encode('utf-8'))
            finally:
                temp_file.delete()
        print u'done.'

