import elog_modules.mod_save, portage_exec, portage_exception def process(mysettings, cpv, logentries, fulltext): elogfilename = elog_modules.mod_save.process(mysettings, cpv, logentries, fulltext) if (not "PORTAGE_ELOG_COMMAND" in mysettings.keys()) \ or len(mysettings["PORTAGE_ELOG_COMMAND"]) == 0: 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}", cpv) retval = portage_exec.spawn_bash(mylogcmd) if retval != 0: raise portage_exception.PortageException("!!! PORTAGE_ELOG_COMMAND failed with exitcode %d" % retval) return