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
