[Pkg-mailman-hackers] Pkg-mailman commit - rev 119 - branches/pkg-split/core/debian/Debian

Bernd S. Brentrup bsb@haydn.debian.org
Fri, 07 May 2004 11:58:04 -0600


Author: bsb
Date: 2004-05-07 11:58:02 -0600 (Fri, 07 May 2004)
New Revision: 119

Modified:
   branches/pkg-split/core/debian/Debian/helpers.py
Log:
Make __name__ == '__main__' work for CommandRunner.
Gracefully handle SystemExit in CommandRunner.


Modified: branches/pkg-split/core/debian/Debian/helpers.py
===================================================================
--- branches/pkg-split/core/debian/Debian/helpers.py	2004-05-06 15:59:50 UTC (rev 118)
+++ branches/pkg-split/core/debian/Debian/helpers.py	2004-05-07 17:58:02 UTC (rev 119)
@@ -116,14 +116,21 @@
         """
         """#
         gbls = virgin_gbls.copy()
-        sys_argv    = sys.argv[:]
-        sys_path    = sys.path[:]
-        sys.argv    = [cmd] + list(args)
-        if self._prepend:
-            sys.path.insert(0, self._prepend)
-        execfile(cmd, gbls)
-        sys.path    = sys_path
-        sys.argv    = sys_argv
+        self._save = (sys.argv[:], sys.path[:])
+        self._rc = None
+        try:
+            try:
+                sys.argv    = [cmd] + list(args)
+                if self._prepend:
+                    sys.path.insert(0, self._prepend)
+                gbls['__name__'] = '__main__'
+                execfile(cmd, gbls)
+            except SystemExit, err:
+                self._rc = err.code
+        finally:
+            sys.argv, sys.path = self._save
+        return self._rc
+
 
 # If run as a script, provide debug info for MM commands
 # implemented in Python.