| # elog/mod_custom.py - elog dispatch module |
| # Copyright 2006-2007 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| import portage.elog.mod_save, portage.process, portage.exception |
| |
| def process(mysettings, key, logentries, fulltext): |
| elogfilename = portage.elog.mod_save.process(mysettings, key, logentries, fulltext) |
| |
| if not mysettings.get("PORTAGE_ELOG_COMMAND"): |
| raise portage.exception.MissingParameter("!!! Custom logging requested but PORTAGE_ELOG_COMMAND is not defined") |
| else: |
| mylogcmd = mysettings["PORTAGE_ELOG_COMMAND"] |
| mylogcmd = mylogcmd.replace("${LOGFILE}", elogfilename) |
| mylogcmd = mylogcmd.replace("${PACKAGE}", key) |
| retval = portage.process.spawn_bash(mylogcmd) |
| if retval != 0: |
| raise portage.exception.PortageException("!!! PORTAGE_ELOG_COMMAND failed with exitcode %d" % retval) |
| return |