aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/_emerge/EbuildBuild.py')
-rw-r--r--lib/_emerge/EbuildBuild.py25
1 files changed, 21 insertions, 4 deletions
diff --git a/lib/_emerge/EbuildBuild.py b/lib/_emerge/EbuildBuild.py
index aeb8a252b..db85b20b2 100644
--- a/lib/_emerge/EbuildBuild.py
+++ b/lib/_emerge/EbuildBuild.py
@@ -23,6 +23,7 @@ from portage.package.ebuild.digestcheck import digestcheck
from portage.package.ebuild.doebuild import _check_temp_dir
from portage.package.ebuild._spawn_nofetch import SpawnNofetchWithoutBuilddir
from portage.util._async.AsyncTaskFuture import AsyncTaskFuture
+from portage.util.path import first_existing
class EbuildBuild(CompositeTask):
@@ -160,16 +161,32 @@ class EbuildBuild(CompositeTask):
self._default_final_exit)
return
+ quiet_setting = settings.get("PORTAGE_QUIET", False)
+ fetch_log = None
+ logwrite_access = False
+ if quiet_setting:
+ fetch_log = os.path.join(
+ _emerge.emergelog._emerge_log_dir, "emerge-fetch.log"
+ )
+ logwrite_access = os.access(first_existing(fetch_log), os.W_OK)
+
fetcher = EbuildFetcher(
config_pool=self.config_pool,
ebuild_path=self._ebuild_path,
fetchall=self.opts.fetch_all_uri,
fetchonly=self.opts.fetchonly,
- background=False,
- logfile=None,
+ background=quiet_setting if logwrite_access else False,
+ logfile=fetch_log if logwrite_access else None,
pkg=self.pkg,
- scheduler=self.scheduler)
- self._start_task(fetcher, self._fetchonly_exit)
+ scheduler=self.scheduler,
+ )
+
+ if fetch_log and logwrite_access:
+ fetcher.addExitListener(self._fetchonly_exit)
+ self._task_queued(fetcher)
+ self.scheduler.fetch.schedule(fetcher, force_queue=True)
+ else:
+ self._start_task(fetcher, self._fetchonly_exit)
return
self._build_dir = EbuildBuildDir(