{##}#!${executable} {##}# -*- coding: utf-8 -*- {##}# {##}# Copyright (C) 2003-2009 Edgewall Software {##}# Copyright (C) 2003-2004 Jonas Borgström {##}# All rights reserved. {##}# {##}# This software is licensed as described in the file COPYING, which {##}# you should have received as part of this distribution. The terms {##}# are also available at https://trac.edgewall.org/wiki/TracLicense. {##}# {##}# This software consists of voluntary contributions made by many {##}# individuals. For the exact contribution history, see the revision {##}# history and logs, available at https://trac.edgewall.org/log/. {##}# {##}# Author: Jonas Borgström from __future__ import print_function try: import os import pkg_resources if 'TRAC_ENV' not in os.environ and \ 'TRAC_ENV_PARENT_DIR' not in os.environ: os.environ['TRAC_ENV'] = ${repr(env.path)} if 'PYTHON_EGG_CACHE' not in os.environ: if 'TRAC_ENV' in os.environ: egg_cache = os.path.join(os.environ['TRAC_ENV'], '.egg-cache') elif 'TRAC_ENV_PARENT_DIR' in os.environ: egg_cache = os.path.join(os.environ['TRAC_ENV_PARENT_DIR'], '.egg-cache') pkg_resources.set_extraction_path(egg_cache) from trac.web import cgi_frontend cgi_frontend.run() except SystemExit: raise except Exception as e: import sys import traceback print(e, file=sys.stderr) traceback.print_exc(file=sys.stderr) print("Status: 500 Internal Server Error") print("Content-Type: text/plain") print() print("Oops...") print() print("Trac detected an internal error:", e) print() traceback.print_exc(file=sys.stdout)