cciw-website / scripts / handle_mail.py

#!/usr/bin/env python2.5
import os

def main(lockfile):
    if os.path.exists(lockfile):
        return

    try:
        # There is a race condition here, but since we only run this
        # script every n minutes, the processes are not going to be
        # racing.

        # Create the lock
        file(lockfile, "w").close()

        try:
            from cciw.mail.lists import handle_all_mail
            handle_all_mail()
        except:
            from django.core.mail import mail_admins
            import traceback
            import sys
            subject = 'Sending mail error'
            exc_info = sys.exc_info()
            message = '\n'.join(traceback.format_exception(*exc_info))
            mail_admins(subject, message, fail_silently=True)
    finally:
        # Delete the lock
        os.unlink(lockfile)

if __name__ == '__main__':
    import sys
    main(sys.argv[1])
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.