From f188808244e7f24589825ce470d59df77b9d754b Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Thu, 18 Jun 2009 19:55:17 +0000 Subject: Add a EMERGE_LOG_DIR variable to control the location of emerge.log and emerge-fetch.log. This was requested by Eitan Mosenkis for use in his 'online image builder' soc project. svn path=/main/trunk/; revision=13652 --- pym/_emerge/__init__.py | 20 ++++++++++++++++++-- pym/portage/__init__.py | 1 + 2 files changed, 19 insertions(+), 2 deletions(-) (limited to 'pym') diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index 8ef667a07..a3921b629 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -238,13 +238,15 @@ shortmapping={ "v":"--verbose", "V":"--version" } +_emerge_log_dir = '/var/log' + def emergelog(xterm_titles, mystr, short_msg=None): if xterm_titles and short_msg: if "HOSTNAME" in os.environ: short_msg = os.environ["HOSTNAME"]+": "+short_msg xtermTitle(short_msg) try: - file_path = "/var/log/emerge.log" + file_path = os.path.join(_emerge_log_dir, 'emerge.log') mylogfile = open(file_path, "a") portage.util.apply_secpass_permissions(file_path, uid=portage.portage_uid, gid=portage.portage_gid, @@ -10137,7 +10139,7 @@ class Scheduler(PollScheduler): _bad_resume_opts = set(["--ask", "--changelog", "--resume", "--skipfirst"]) - _fetch_log = "/var/log/emerge-fetch.log" + _fetch_log = os.path.join(_emerge_log_dir, 'emerge-fetch.log') class _iface_class(SlotObject): __slots__ = ("dblinkEbuildPhase", "dblinkDisplayMerge", @@ -16181,6 +16183,20 @@ def emerge_main(): def emergelog(*pargs, **kargs): pass + else: + if 'EMERGE_LOG_DIR' in settings: + try: + # At least the parent needs to exist for the lock file. + portage.util.ensure_dirs(settings['EMERGE_LOG_DIR']) + except portage.exception.PortageException, e: + writemsg_level("!!! Error creating directory for " + \ + "EMERGE_LOG_DIR='%s':\n!!! %s\n" % \ + (settings['EMERGE_LOG_DIR'], e), + noiselevel=-1, level=logging.ERROR) + else: + global _emerge_log_dir + _emerge_log_dir = settings['EMERGE_LOG_DIR'] + if not "--pretend" in myopts: emergelog(xterm_titles, "Started emerge on: "+\ time.strftime("%b %d, %Y %H:%M:%S", time.localtime())) diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index cd8adbba4..575e75c4b 100644 --- a/pym/portage/__init__.py +++ b/pym/portage/__init__.py @@ -1135,6 +1135,7 @@ class config(object): "ACCEPT_KEYWORDS", "AUTOCLEAN", "CLEAN_DELAY", "COLLISION_IGNORE", "CONFIG_PROTECT", "CONFIG_PROTECT_MASK", "EGENCACHE_DEFAULT_OPTS", "EMERGE_DEFAULT_OPTS", + "EMERGE_LOG_DIR", "EMERGE_WARNING_DELAY", "FETCHCOMMAND", "FETCHCOMMAND_FTP", "FETCHCOMMAND_HTTP", "FETCHCOMMAND_SFTP", "GENTOO_MIRRORS", "NOCONFMEM", "O", -- cgit v1.2.3-1-g7c22