diff options
Diffstat (limited to 'pym/_emerge/emergelog.py')
-rw-r--r-- | pym/_emerge/emergelog.py | 41 |
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 |