summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/emergelog.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-06-22 20:02:48 +0000
committerZac Medico <zmedico@gentoo.org>2009-06-22 20:02:48 +0000
commit4827f2de62ec604fbf3a6dafbcfbe2c180481efe (patch)
tree918bbd1b90db48effaa3ccd0790e224b66da01a8 /pym/_emerge/emergelog.py
parentbf9282b6782ad433b2ca905a5131bd0c424a2d94 (diff)
downloadportage-4827f2de62ec604fbf3a6dafbcfbe2c180481efe.tar.gz
portage-4827f2de62ec604fbf3a6dafbcfbe2c180481efe.tar.bz2
portage-4827f2de62ec604fbf3a6dafbcfbe2c180481efe.zip
Bug #275047 - Split _emerge/__init__.py into smaller pieces (part 4).
Thanks to Sebastian Mingramm (few) <s.mingramm@gmx.de> for this patch. svn path=/main/trunk/; revision=13669
Diffstat (limited to 'pym/_emerge/emergelog.py')
-rw-r--r--pym/_emerge/emergelog.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/pym/_emerge/emergelog.py b/pym/_emerge/emergelog.py
new file mode 100644
index 000000000..53c6abe16
--- /dev/null
+++ b/pym/_emerge/emergelog.py
@@ -0,0 +1,41 @@
+import os
+import sys
+import time
+try:
+ import portage
+except ImportError:
+ from os import path as osp
+ sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym"))
+ import portage
+
+from portage.data import secpass
+from portage.output import xtermTitle
+
+_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 = 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,
+ mode=0660)
+ mylock = None
+ try:
+ mylock = portage.locks.lockfile(mylogfile)
+ # seek because we may have gotten held up by the lock.
+ # if so, we may not be positioned at the end of the file.
+ mylogfile.seek(0, 2)
+ mylogfile.write(str(time.time())[:10]+": "+mystr+"\n")
+ mylogfile.flush()
+ finally:
+ if mylock:
+ portage.locks.unlockfile(mylock)
+ mylogfile.close()
+ except (IOError,OSError,portage.exception.PortageException), e:
+ if secpass >= 1:
+ print >> sys.stderr, "emergelog():",e