diff options
author | Zac Medico <zmedico@gentoo.org> | 2010-08-21 11:18:40 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2010-08-21 11:18:40 -0700 |
commit | 42cab46428e69cf7423053b10940a275c38c04ff (patch) | |
tree | 3d136311af222afb8d0d9bda838c1d5674b6cf4f /pym/_emerge/EbuildPhase.py | |
parent | 99832a79bff002a7494c4fb31701451c13a5a435 (diff) | |
download | portage-42cab46428e69cf7423053b10940a275c38c04ff.tar.gz portage-42cab46428e69cf7423053b10940a275c38c04ff.tar.bz2 portage-42cab46428e69cf7423053b10940a275c38c04ff.zip |
Bug #324191 - Add support for FEATURES=compress-build-logs. The causes
all build logs to be compressed while they are being written. Log file
names have an extension that is appropriate for the compression type.
Currently, only gzip(1) compression is supported, so build logs will
have a '.gz' extension when this feature is enabled.
Diffstat (limited to 'pym/_emerge/EbuildPhase.py')
-rw-r--r-- | pym/_emerge/EbuildPhase.py | 34 |
1 files changed, 7 insertions, 27 deletions
diff --git a/pym/_emerge/EbuildPhase.py b/pym/_emerge/EbuildPhase.py index 7fbc66849..d2d4dce3a 100644 --- a/pym/_emerge/EbuildPhase.py +++ b/pym/_emerge/EbuildPhase.py @@ -75,24 +75,11 @@ class EbuildPhase(CompositeTask): if self.phase == "install": out = portage.StringIO() - log_path = self.settings.get("PORTAGE_LOG_FILE") - log_file = None - if log_path is not None: - log_file = codecs.open(_unicode_encode(log_path, - encoding=_encodings['fs'], errors='strict'), - mode='a', encoding=_encodings['content'], errors='replace') - try: - _check_build_log(self.settings, out=out) - msg = _unicode_decode(out.getvalue(), - encoding=_encodings['content'], errors='replace') - if msg: - if not self.background: - writemsg_stdout(msg, noiselevel=-1) - if log_file is not None: - log_file.write(msg) - finally: - if log_file is not None: - log_file.close() + _check_build_log(self.settings, out=out) + msg = _unicode_decode(out.getvalue(), + encoding=_encodings['content'], errors='replace') + self.scheduler.output(msg, + log_path=self.settings.get("PORTAGE_LOG_FILE")) if fail: self._die_hooks() @@ -108,15 +95,8 @@ class EbuildPhase(CompositeTask): msg = _unicode_decode(out.getvalue(), encoding=_encodings['content'], errors='replace') if msg: - if not self.background: - writemsg_stdout(msg, noiselevel=-1) - log_path = self.settings.get("PORTAGE_LOG_FILE") - if log_path is not None: - log_file = codecs.open(_unicode_encode(log_path, - encoding=_encodings['fs'], errors='strict'), - mode='a', encoding=_encodings['content'], errors='replace') - log_file.write(msg) - log_file.close() + self.scheduler.output(msg, + log_path=self.settings.get("PORTAGE_LOG_FILE")) post_phase_cmds = _post_phase_cmds.get(self.phase) if post_phase_cmds is not None: |