Make subpackage naming consistent
authorMarius Mauch <genone@gentoo.org>
Sun, 11 Feb 2007 01:13:56 +0000 (01:13 -0000)
committerMarius Mauch <genone@gentoo.org>
Sun, 11 Feb 2007 01:13:56 +0000 (01:13 -0000)
svn path=/main/trunk/; revision=5955

pym/elog_modules
pym/portage/__init__.py
pym/portage/dbapi/vartree.py
pym/portage/elog/__init__.py [new file with mode: 0644]
pym/portage/elog/mod_custom.py [moved from pym/portage/elog_modules/mod_custom.py with 100% similarity]
pym/portage/elog/mod_mail.py [moved from pym/portage/elog_modules/mod_mail.py with 100% similarity]
pym/portage/elog/mod_mail_summary.py [moved from pym/portage/elog_modules/mod_mail_summary.py with 100% similarity]
pym/portage/elog/mod_save.py [moved from pym/portage/elog_modules/mod_save.py with 100% similarity]
pym/portage/elog/mod_save_summary.py [moved from pym/portage/elog_modules/mod_save_summary.py with 100% similarity]
pym/portage/elog/mod_syslog.py [moved from pym/portage/elog_modules/mod_syslog.py with 100% similarity]
pym/portage/elog_modules/__init__.py [deleted file]

index 32f0ca7fbc0477153361ad763d4d8d5914480d97..6b14e4bbfa4001d423cfc5fcf75ce4af2730bee1 120000 (symlink)
@@ -1 +1 @@
-portage/elog_modules
\ No newline at end of file
+portage/elog
\ No newline at end of file
index 7f0ed6fd3a05ca1112990a2f83098a33d5e58441..ff5b319c2b9e88c1694d16bd624abc39a334f872 100644 (file)
@@ -458,110 +458,6 @@ class digraph:
                                print "(%s)" % self.nodes[node][0][child]
 
 
-_elog_atexit_handlers = []
-def elog_process(cpv, mysettings):
-       mylogfiles = listdir(mysettings["T"]+"/logging/")
-       # shortcut for packages without any messages
-       if len(mylogfiles) == 0:
-               return
-       # exploit listdir() file order so we process log entries in chronological order
-       mylogfiles.reverse()
-       all_logentries = {}
-       for f in mylogfiles:
-               msgfunction, msgtype = f.split(".")
-               if msgfunction not in portage.const.EBUILD_PHASES:
-                       writemsg("!!! can't process invalid log file: %s\n" % f,
-                               noiselevel=-1)
-                       continue
-               if not msgfunction in all_logentries:
-                       all_logentries[msgfunction] = []
-               msgcontent = open(mysettings["T"]+"/logging/"+f, "r").readlines()
-               all_logentries[msgfunction].append((msgtype, msgcontent))
-
-       def filter_loglevels(logentries, loglevels):
-               # remove unwanted entries from all logentries
-               rValue = {}
-               loglevels = map(str.upper, loglevels)
-               for phase in logentries.keys():
-                       for msgtype, msgcontent in logentries[phase]:
-                               if msgtype.upper() in loglevels or "*" in loglevels:
-                                       if not rValue.has_key(phase):
-                                               rValue[phase] = []
-                                       rValue[phase].append((msgtype, msgcontent))
-               return rValue
-       
-       my_elog_classes = set(mysettings.get("PORTAGE_ELOG_CLASSES", "").split())
-       default_logentries = filter_loglevels(all_logentries, my_elog_classes)
-
-       # in case the filters matched all messages and no module overrides exist
-       if len(default_logentries) == 0 and (not ":" in mysettings.get("PORTAGE_ELOG_SYSTEM", "")):
-               return
-
-       def combine_logentries(logentries):
-               # generate a single string with all log messages
-               rValue = ""
-               for phase in portage.const.EBUILD_PHASES:
-                       if not phase in logentries:
-                               continue
-                       for msgtype,msgcontent in logentries[phase]:
-                               rValue += "%s: %s\n" % (msgtype, phase)
-                               for line in msgcontent:
-                                       rValue += line
-                               rValue += "\n"
-               return rValue
-       
-       default_fulllog = combine_logentries(default_logentries)
-
-       # pass the processing to the individual modules
-       logsystems = mysettings["PORTAGE_ELOG_SYSTEM"].split()
-       for s in logsystems:
-               # allow per module overrides of PORTAGE_ELOG_CLASSES
-               if ":" in s:
-                       s, levels = s.split(":", 1)
-                       levels = levels.split(",")
-                       mod_logentries = filter_loglevels(all_logentries, levels)
-                       mod_fulllog = combine_logentries(mod_logentries)
-               else:
-                       mod_logentries = default_logentries
-                       mod_fulllog = default_fulllog
-               if len(mod_logentries) == 0:
-                       continue
-               # - is nicer than _ for module names, so allow people to use it.
-               s = s.replace("-", "_")
-               try:
-                       # FIXME: ugly ad.hoc import code
-                       # TODO:  implement a common portage module loader
-                       logmodule = __import__("portage.elog_modules.mod_"+s)
-                       m = getattr(logmodule, "mod_"+s)
-                       def timeout_handler(signum, frame):
-                               raise portage.exception.PortageException(
-                                       "Timeout in elog_process for system '%s'" % s)
-                       import signal
-                       signal.signal(signal.SIGALRM, timeout_handler)
-                       # Timeout after one minute (in case something like the mail
-                       # module gets hung).
-                       signal.alarm(60)
-                       try:
-                               m.process(mysettings, cpv, mod_logentries, mod_fulllog)
-                       finally:
-                               signal.alarm(0)
-                       if hasattr(m, "finalize") and not m.finalize in _elog_atexit_handlers:
-                               _elog_atexit_handlers.append(m.finalize)
-                               atexit_register(m.finalize, mysettings)
-               except (ImportError, AttributeError), e:
-                       writemsg("!!! Error while importing logging modules " + \
-                               "while loading \"mod_%s\":\n" % str(s))
-                       writemsg("%s\n" % str(e), noiselevel=-1)
-               except portage.exception.PortageException, e:
-                       writemsg("%s\n" % str(e), noiselevel=-1)
-
-       # clean logfiles to avoid repetitions
-       for f in mylogfiles:
-               try:
-                       os.unlink(os.path.join(mysettings["T"], "logging", f))
-               except OSError:
-                       pass
-
 #parse /etc/env.d and generate /etc/profile.env
 
 def env_update(makelinks=1, target_root=None, prev_mtimes=None, contents=None):
index 1e2cceac5fcd5d621eb22136d2c6e8beda934a9d..4afe4a2471655c4b3586fd97f8aeb676d970ccab 100644 (file)
@@ -4,6 +4,7 @@ from portage.data import portage_gid, portage_uid
 from portage.dbapi import dbapi
 from portage.dep import dep_getslot, use_reduce, paren_reduce, isvalidatom, \
        isjustname, dep_getkey, match_from_list
+from portage.elog import elog_process
 from portage.exception import InvalidPackageName, InvalidAtom, \
        UnsupportedAPIException, FileNotFound
 from portage.locks import lockdir, unlockdir
@@ -15,7 +16,7 @@ from portage.util import apply_secpass_permissions, ConfigProtect, ensure_dirs,
 from portage.versions import pkgsplit, catpkgsplit, catsplit, best, pkgcmp
 
 from portage import listdir, dep_expand, config, flatten, key_expand, \
-       doebuild_environment, doebuild, elog_process, env_update, dircache, \
+       doebuild_environment, doebuild, env_update, dircache, \
        abssymlink, movefile, bsd_chflags
 
 import os, sys, stat, cPickle, errno, commands, copy, time
diff --git a/pym/portage/elog/__init__.py b/pym/portage/elog/__init__.py
new file mode 100644 (file)
index 0000000..5ba4979
--- /dev/null
@@ -0,0 +1,111 @@
+from portage.const import EBUILD_PHASES
+from portage.exception import PortageException
+from portage.process import atexit_register
+from portage.util import writemsg
+
+from portage import listdir
+
+import os
+
+_elog_atexit_handlers = []
+def elog_process(cpv, mysettings):
+       mylogfiles = listdir(mysettings["T"]+"/logging/")
+       # shortcut for packages without any messages
+       if len(mylogfiles) == 0:
+               return
+       # exploit listdir() file order so we process log entries in chronological order
+       mylogfiles.reverse()
+       all_logentries = {}
+       for f in mylogfiles:
+               msgfunction, msgtype = f.split(".")
+               if msgfunction not in EBUILD_PHASES:
+                       writemsg("!!! can't process invalid log file: %s\n" % f,
+                               noiselevel=-1)
+                       continue
+               if not msgfunction in all_logentries:
+                       all_logentries[msgfunction] = []
+               msgcontent = open(mysettings["T"]+"/logging/"+f, "r").readlines()
+               all_logentries[msgfunction].append((msgtype, msgcontent))
+
+       def filter_loglevels(logentries, loglevels):
+               # remove unwanted entries from all logentries
+               rValue = {}
+               loglevels = map(str.upper, loglevels)
+               for phase in logentries.keys():
+                       for msgtype, msgcontent in logentries[phase]:
+                               if msgtype.upper() in loglevels or "*" in loglevels:
+                                       if not rValue.has_key(phase):
+                                               rValue[phase] = []
+                                       rValue[phase].append((msgtype, msgcontent))
+               return rValue
+       
+       my_elog_classes = set(mysettings.get("PORTAGE_ELOG_CLASSES", "").split())
+       default_logentries = filter_loglevels(all_logentries, my_elog_classes)
+
+       # in case the filters matched all messages and no module overrides exist
+       if len(default_logentries) == 0 and (not ":" in mysettings.get("PORTAGE_ELOG_SYSTEM", "")):
+               return
+
+       def combine_logentries(logentries):
+               # generate a single string with all log messages
+               rValue = ""
+               for phase in EBUILD_PHASES:
+                       if not phase in logentries:
+                               continue
+                       for msgtype, msgcontent in logentries[phase]:
+                               rValue += "%s: %s\n" % (msgtype, phase)
+                               for line in msgcontent:
+                                       rValue += line
+                               rValue += "\n"
+               return rValue
+       
+       default_fulllog = combine_logentries(default_logentries)
+
+       # pass the processing to the individual modules
+       logsystems = mysettings["PORTAGE_ELOG_SYSTEM"].split()
+       for s in logsystems:
+               # allow per module overrides of PORTAGE_ELOG_CLASSES
+               if ":" in s:
+                       s, levels = s.split(":", 1)
+                       levels = levels.split(",")
+                       mod_logentries = filter_loglevels(all_logentries, levels)
+                       mod_fulllog = combine_logentries(mod_logentries)
+               else:
+                       mod_logentries = default_logentries
+                       mod_fulllog = default_fulllog
+               if len(mod_logentries) == 0:
+                       continue
+               # - is nicer than _ for module names, so allow people to use it.
+               s = s.replace("-", "_")
+               try:
+                       # FIXME: ugly ad.hoc import code
+                       # TODO:  implement a common portage module loader
+                       logmodule = __import__("portage.elog.mod_"+s)
+                       m = getattr(logmodule, "mod_"+s)
+                       def timeout_handler(signum, frame):
+                               raise PortageException("Timeout in elog_process for system '%s'" % s)
+                       import signal
+                       signal.signal(signal.SIGALRM, timeout_handler)
+                       # Timeout after one minute (in case something like the mail
+                       # module gets hung).
+                       signal.alarm(60)
+                       try:
+                               m.process(mysettings, cpv, mod_logentries, mod_fulllog)
+                       finally:
+                               signal.alarm(0)
+                       if hasattr(m, "finalize") and not m.finalize in _elog_atexit_handlers:
+                               _elog_atexit_handlers.append(m.finalize)
+                               atexit_register(m.finalize, mysettings)
+               except (ImportError, AttributeError), e:
+                       writemsg("!!! Error while importing logging modules " + \
+                               "while loading \"mod_%s\":\n" % str(s))
+                       writemsg("%s\n" % str(e), noiselevel=-1)
+               except portage.exception.PortageException, e:
+                       writemsg("%s\n" % str(e), noiselevel=-1)
+
+       # clean logfiles to avoid repetitions
+       for f in mylogfiles:
+               try:
+                       os.unlink(os.path.join(mysettings["T"], "logging", f))
+               except OSError:
+                       pass
diff --git a/pym/portage/elog_modules/__init__.py b/pym/portage/elog_modules/__init__.py
deleted file mode 100644 (file)
index e69de29..0000000