From 8dfd4643c7d8216cfbf6e180ed7b868715b9e775 Mon Sep 17 00:00:00 2001 From: viega Date: Sun, 14 Jun 1998 00:58:33 +0000 Subject: Provides a method wrap_func(func, debug, print_env). If debug is off, the StampedLogger is initialized. If debug is on, or the StampedLogger errors, func is run in a try-except block. If there's an error, it's printed to the web page, along with the environment if print_env is on. Based off Michael McLay's subscribe script, but I wanted to avoid as much code duplication as possible, which led to this strategy. --- Mailman/runcgi.py | 23 +++++++++++++++++++++++ modules/runcgi.py | 23 +++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 Mailman/runcgi.py create mode 100644 modules/runcgi.py diff --git a/Mailman/runcgi.py b/Mailman/runcgi.py new file mode 100644 index 000000000..d35c70ae4 --- /dev/null +++ b/Mailman/runcgi.py @@ -0,0 +1,23 @@ +from Mailman.debug import * + +def wrap_func(func, debug=1, print_env=1): + if not debug: + try: + sys.stderr = mm_utils.StampedLogger("error", label = 'admin', + manual_reprime=1, nofail=0) + except: + # Error opening log, show thru anyway! + wrap_func(func, print_env=print_env, debug=1) + return + func() + return + else: + try: + func() + except SystemExit: + pass + except: + print_trace() + if print_env: + print_environ() + diff --git a/modules/runcgi.py b/modules/runcgi.py new file mode 100644 index 000000000..d35c70ae4 --- /dev/null +++ b/modules/runcgi.py @@ -0,0 +1,23 @@ +from Mailman.debug import * + +def wrap_func(func, debug=1, print_env=1): + if not debug: + try: + sys.stderr = mm_utils.StampedLogger("error", label = 'admin', + manual_reprime=1, nofail=0) + except: + # Error opening log, show thru anyway! + wrap_func(func, print_env=print_env, debug=1) + return + func() + return + else: + try: + func() + except SystemExit: + pass + except: + print_trace() + if print_env: + print_environ() + -- cgit v1.3.1