[Pkg-mailman-hackers] Pkg-mailman commit - rev 87 - in branches/pkg-split/core/debian: . Debian snippets

Bernd S. Brentrup bsb@haydn.debian.org
Sat, 24 Apr 2004 11:45:23 -0600


Author: bsb
Date: 2004-04-24 11:45:21 -0600 (Sat, 24 Apr 2004)
New Revision: 87

Added:
   branches/pkg-split/core/debian/Debian/
   branches/pkg-split/core/debian/Debian/__init__.py
   branches/pkg-split/core/debian/Debian/helpers.py
Removed:
   branches/pkg-split/core/debian/snippets/maint_helpers.py
Log:
Add a Mailman.Debian (python) subpackage containing
support code for maintainer scripts.

Added: branches/pkg-split/core/debian/Debian/__init__.py
===================================================================
--- branches/pkg-split/core/debian/Debian/__init__.py	2004-04-24 17:37:58 UTC (rev 86)
+++ branches/pkg-split/core/debian/Debian/__init__.py	2004-04-24 17:45:21 UTC (rev 87)
@@ -0,0 +1,9 @@
+# $URL$
+# $Id$
+
+from helpers import *
+
+__all__ = [ 'SimpleLogger',
+            'DebuggingLogger',
+            'CommandRunner',
+            ]


Property changes on: branches/pkg-split/core/debian/Debian/__init__.py
___________________________________________________________________
Name: svn:keywords
   + Id URL

Copied: branches/pkg-split/core/debian/Debian/helpers.py (from rev 84, branches/pkg-split/core/debian/snippets/maint_helpers.py)
===================================================================
--- branches/pkg-split/core/debian/snippets/maint_helpers.py	2004-04-23 18:09:25 UTC (rev 84)
+++ branches/pkg-split/core/debian/Debian/helpers.py	2004-04-24 17:45:21 UTC (rev 87)
@@ -0,0 +1,141 @@
+#! /usr/bin/python -O
+#
+# Adopted from mailman maintainer scripts
+#
+# Copyright (c) 2004, Bernd S. Brentrup <bsb@debian.org>
+#
+# Licensed under GPL version 2
+#
+# Work in progress, STANDARD NO WARRANTY DISCLAIMER
+#
+# $URL$
+# $Id$
+
+"""
+"""#
+
+__version__ = '0.1'
+
+__all__ = [
+    'SimpleLogger',
+    'DebuggingLogger',
+    'CommandRunner',
+    ]
+
+
+# We'll use this copy later in CommandRunner
+virgin_gbls = globals().copy()
+for k in ('__doc__', '__version__', '__all__'):
+    del virgin_gbls[k]
+
+import sys, os
+
+class SimpleLogger:
+    """
+    """#
+    levels = [ 'none', 'some', 'most', 'all' ]
+
+    def __init__(self, prefix):
+        self._file = sys.stderr
+        try:
+            level = os.environ['%(prefix)s_LOG' % locals()]
+            self._level = int(level)
+        except KeyError:
+            self._level = 1
+        except ValueError:
+            try:
+                self._level = self.levels.index(level.lower())
+            except ValueError:
+                self._level = 0
+
+    def set_level(self, lvl):
+        self._level = lvl
+
+    def set_file(self, fl):
+        self._file = fl
+
+    def __call__(self, msg, **kw):
+        nl = kw.get('nl', '\n')
+        lvl = kw.get('lvl', 1)
+        if lvl <= self._level:
+            self._file.write('%(msg)s%(nl)s' % locals())
+            self._file.flush()
+
+    def exception(self, lvl=9):
+        """Log exception in sys.exc_info."""
+        import traceback as tb
+        self(''.join(tb.format_exception(*sys.exc_info())),
+             lvl=lvl)
+
+class DebuggingLogger(SimpleLogger):
+    """
+    """#
+
+    def __init__(self, prefix):
+        SimpleLogger.__init__(self, prefix)
+        self._info = [ 'modules', 'path', 'argv', 'version', 'environ' ]
+        try:
+            info = os.environ['%(prefix)s_DEBUG' % locals()]
+            if info not in ('all', 'chatty'):
+                self._info = info.split(',')
+            elif info == 'chatty':
+                self.set_level(999)
+        except:
+            self._info = []
+
+    def sys_info(self):
+        if 'modules' in self._info:
+            for n, m in sys.modules.items():
+                if m is not None:
+                    self('%20s: %r' % (n, m), lvl=0)
+            self('', lvl=0)
+        if 'version' in self._info:
+            self('sys.version=%r' % sys.version, lvl=0)
+            self('', lvl=0)
+        if 'path' in self._info:
+            self('sys.path=%r' % sys.path, lvl=0)
+            self('', lvl=0)
+        if 'argv' in self._info:
+            self('sys.argv=%r' % sys.argv, lvl=0)
+            self('', lvl=0)
+        if 'environ' in self._info:
+            self('os.environ:', lvl=0)
+            for n, v in os.environ.items():
+                self('%20s=%r' % (n, v), lvl=0)
+            self('', lvl=0)
+
+class CommandRunner:
+    """
+    """#
+
+    def __init__(self, prepend=None):
+        self._prepend = prepend
+
+
+    def run(self, cmd, *args):
+        """
+        """#
+        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
+
+# If run as a script, provide debug info for MM commands
+# implemented in Python.
+
+if __name__ == '__main__':
+    MM_ROOT = '/var/lib/mailman'
+    sys.stderr = sys.stdout
+    log = DebuggingLogger('MM_MAINT')
+    try:
+        CommandRunner(os.path.join(MM_ROOT, 'bin')
+                      ).run(*sys.argv[1:])
+    finally:
+        # If things break, show useful information
+        # depending on $MM_MAINT_DEBUG settings
+        log.sys_info()

Deleted: branches/pkg-split/core/debian/snippets/maint_helpers.py
===================================================================
--- branches/pkg-split/core/debian/snippets/maint_helpers.py	2004-04-24 17:37:58 UTC (rev 86)
+++ branches/pkg-split/core/debian/snippets/maint_helpers.py	2004-04-24 17:45:21 UTC (rev 87)
@@ -1,135 +0,0 @@
-#! /usr/bin/python -O
-#
-# Adopted from mailman maintainer scripts
-#
-# Copyright (c) 2004, Bernd S. Brentrup <bsb@debian.org>
-#
-# Licensed under GPL version 2
-#
-# Work in progress, STANDARD NO WARRANTY DISCLAIMER
-#
-# $URL$
-# $Id$
-
-"""
-"""#
-
-__version__ = '0.1'
-
-__all__ = [
-    'SimpleLogger',
-    'DebuggingLogger',
-    'CommandRunner',
-    ]
-
-
-# We'll use this copy later in CommandRunner
-virgin_gbls = globals().copy()
-for k in ('__doc__', '__version__', '__all__'):
-    del virgin_gbls[k]
-
-import sys, os
-
-class SimpleLogger:
-    """
-    """#
-    levels = [ 'none', 'some', 'most', 'all' ]
-
-    def __init__(self, prefix):
-        self._file = sys.stderr
-        try:
-            level = os.environ['%(prefix)s_LOG' % locals()]
-            self._level = int(level)
-        except KeyError:
-            self._level = 1
-        except ValueError:
-            try:
-                self._level = self.levels.index(level.lower())
-            except ValueError:
-                self._level = 0
-
-    def set_level(self, lvl):
-        self._level = lvl
-
-    def set_file(self, fl):
-        self._file = fl
-
-    def __call__(self, msg, **kw):
-        nl = kw.get('nl', '\n')
-        lvl = kw.get('lvl', 1)
-        if lvl <= self._level:
-            self._file.write('%(msg)s%(nl)s' % locals())
-            self._file.flush()
-
-class DebuggingLogger(SimpleLogger):
-    """
-    """#
-
-    def __init__(self, prefix):
-        SimpleLogger.__init__(self, prefix)
-        self._info = [ 'modules', 'path', 'argv', 'version', 'environ' ]
-        try:
-            info = os.environ['%(prefix)s_DEBUG' % locals()]
-            if info not in ('all', 'chatty'):
-                self._info = info.split(',')
-            elif info == 'chatty':
-                self.set_level(999)
-        except:
-            self._info = []
-
-    def sys_info(self):
-        if 'modules' in self._info:
-            for n, m in sys.modules.items():
-                if m is not None:
-                    self('%20s: %r' % (n, m), lvl=0)
-            self('', lvl=0)
-        if 'version' in self._info:
-            self('sys.version=%r' % sys.version, lvl=0)
-            self('', lvl=0)
-        if 'path' in self._info:
-            self('sys.path=%r' % sys.path, lvl=0)
-            self('', lvl=0)
-        if 'argv' in self._info:
-            self('sys.argv=%r' % sys.argv, lvl=0)
-            self('', lvl=0)
-        if 'environ' in self._info:
-            self('os.environ:', lvl=0)
-            for n, v in os.environ.items():
-                self('%20s=%r' % (n, v), lvl=0)
-            self('', lvl=0)
-
-class CommandRunner:
-    """
-    """#
-
-    def __init__(self, prepend=None):
-        self._prepend = prepend
-
-
-    def run(self, cmd, *args):
-        """
-        """#
-        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
-
-# If run as a script, provide debug info for MM commands
-# implemented in Python.
-
-if __name__ == '__main__':
-    MM_ROOT = '/var/lib/mailman'
-    sys.stderr = sys.stdout
-    log = DebuggingLogger('MM_MAINT')
-    try:
-        CommandRunner(os.path.join(MM_ROOT, 'bin')
-                      ).run(*sys.argv[1:])
-    finally:
-        # If things break, show useful information
-        # depending on $MM_MAINT_DEBUG settings
-        log.sys_info()