Example #1
0
    def _prefetch_exit(self, prefetcher):

        opts = self.opts
        pkg = self.pkg
        settings = self.settings

        if opts.fetchonly:
            fetcher = EbuildFetchonly(fetch_all=opts.fetch_all_uri,
                                      pkg=pkg,
                                      pretend=opts.pretend,
                                      settings=settings)
            retval = fetcher.execute()
            self.returncode = retval
            self.wait()
            return

        self._build_dir = EbuildBuildDir(pkg=pkg, settings=settings)
        self._build_dir.lock()

        # Cleaning needs to happen before fetch, since the build dir
        # is used for log handling.
        msg = " === (%s of %s) Cleaning (%s::%s)" % \
         (self.pkg_count.curval, self.pkg_count.maxval,
         self.pkg.cpv, self._ebuild_path)
        short_msg = "emerge: (%s of %s) %s Clean" % \
         (self.pkg_count.curval, self.pkg_count.maxval, self.pkg.cpv)
        self.logger.log(msg, short_msg=short_msg)

        pre_clean_phase = EbuildPhase(background=self.background,
                                      phase='clean',
                                      scheduler=self.scheduler,
                                      settings=self.settings)
        self._start_task(pre_clean_phase, self._pre_clean_exit)
Example #2
0
	def _prefetch_exit(self, prefetcher):

		opts = self.opts
		pkg = self.pkg
		settings = self.settings

		if opts.fetchonly:
				fetcher = EbuildFetchonly(
					fetch_all=opts.fetch_all_uri,
					pkg=pkg, pretend=opts.pretend,
					settings=settings)
				retval = fetcher.execute()
				self.returncode = retval
				self.wait()
				return

		self._build_dir = EbuildBuildDir(pkg=pkg, settings=settings)
		self._build_dir.lock()

		# Cleaning needs to happen before fetch, since the build dir
		# is used for log handling.
		msg = " === (%s of %s) Cleaning (%s::%s)" % \
			(self.pkg_count.curval, self.pkg_count.maxval,
			self.pkg.cpv, self._ebuild_path)
		short_msg = "emerge: (%s of %s) %s Clean" % \
			(self.pkg_count.curval, self.pkg_count.maxval, self.pkg.cpv)
		self.logger.log(msg, short_msg=short_msg)

		pre_clean_phase = EbuildPhase(background=self.background,
			phase='clean', scheduler=self.scheduler, settings=self.settings)
		self._start_task(pre_clean_phase, self._pre_clean_exit)
Example #3
0
	def _prefetch_exit(self, prefetcher):

		if self._was_cancelled():
			self.wait()
			return

		opts = self.opts
		pkg = self.pkg
		settings = self.settings

		if opts.fetchonly:
			if opts.pretend:
				fetcher = EbuildFetchonly(
					fetch_all=opts.fetch_all_uri,
					pkg=pkg, pretend=opts.pretend,
					settings=settings)
				retval = fetcher.execute()
				if retval == os.EX_OK:
					self._current_task = None
					self.returncode = os.EX_OK
					self._async_wait()
				else:
					# For pretend mode, the convention it to execute
					# pkg_nofetch and return a successful exitcode.
					self._start_task(SpawnNofetchWithoutBuilddir(
						background=self.background,
						portdb=self.pkg.root_config.trees[self._tree].dbapi,
						ebuild_path=self._ebuild_path,
						scheduler=self.scheduler,
						settings=self.settings),
						self._default_final_exit)
				return
			else:
				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,
					pkg=self.pkg,
					scheduler=self.scheduler)
				self._start_task(fetcher, self._fetchonly_exit)
				return

		self._build_dir = EbuildBuildDir(
			scheduler=self.scheduler, settings=settings)
		self._start_task(
			AsyncTaskFuture(future=self._build_dir.async_lock()),
			self._start_pre_clean)
Example #4
0
    def _prefetch_exit(self, prefetcher):

        if self._was_cancelled():
            self.wait()
            return

        opts = self.opts
        pkg = self.pkg
        settings = self.settings

        if opts.fetchonly:
            if opts.pretend:
                fetcher = EbuildFetchonly(fetch_all=opts.fetch_all_uri,
                                          pkg=pkg,
                                          pretend=opts.pretend,
                                          settings=settings)
                retval = fetcher.execute()
                if retval == os.EX_OK:
                    self._current_task = None
                    self.returncode = os.EX_OK
                    self._async_wait()
                else:
                    # For pretend mode, the convention it to execute
                    # pkg_nofetch and return a successful exitcode.
                    self._start_task(
                        SpawnNofetchWithoutBuilddir(
                            background=self.background,
                            portdb=self.pkg.root_config.trees[
                                self._tree].dbapi,
                            ebuild_path=self._ebuild_path,
                            scheduler=self.scheduler,
                            settings=self.settings), self._default_final_exit)
                return

            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,
                                    pkg=self.pkg,
                                    scheduler=self.scheduler)
            self._start_task(fetcher, self._fetchonly_exit)
            return

        self._build_dir = EbuildBuildDir(scheduler=self.scheduler,
                                         settings=settings)
        self._start_task(AsyncTaskFuture(future=self._build_dir.async_lock()),
                         self._start_pre_clean)
	def _prefetch_exit(self, prefetcher):

		opts = self.opts
		pkg = self.pkg
		settings = self.settings

		if opts.fetchonly:
				fetcher = EbuildFetchonly(
					fetch_all=opts.fetch_all_uri,
					pkg=pkg, pretend=opts.pretend,
					settings=settings)
				retval = fetcher.execute()
				self.returncode = retval
				self.wait()
				return

		fetcher = EbuildFetcher(config_pool=self.config_pool,
			fetchall=opts.fetch_all_uri,
			fetchonly=opts.fetchonly,
			background=self.background,
			pkg=pkg, scheduler=self.scheduler)

		self._start_task(fetcher, self._fetch_exit)
Example #6
0
    def _prefetch_exit(self, prefetcher):

        if self._was_cancelled():
            self.wait()
            return

        opts = self.opts
        pkg = self.pkg
        settings = self.settings

        if opts.fetchonly:
            if opts.pretend:
                fetcher = EbuildFetchonly(fetch_all=opts.fetch_all_uri,
                                          pkg=pkg,
                                          pretend=opts.pretend,
                                          settings=settings)
                retval = fetcher.execute()
                self.returncode = retval
                self.wait()
                return
            else:
                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,
                                        pkg=self.pkg,
                                        scheduler=self.scheduler)
                self._start_task(fetcher, self._fetchonly_exit)
                return

        self._build_dir = EbuildBuildDir(scheduler=self.scheduler,
                                         settings=settings)
        self._start_task(AsyncTaskFuture(future=self._build_dir.async_lock()),
                         self._start_pre_clean)
Example #7
0
    def _prefetch_exit(self, prefetcher):

        opts = self.opts
        pkg = self.pkg
        settings = self.settings

        if opts.fetchonly:
            fetcher = EbuildFetchonly(fetch_all=opts.fetch_all_uri,
                                      pkg=pkg,
                                      pretend=opts.pretend,
                                      settings=settings)
            retval = fetcher.execute()
            self.returncode = retval
            self.wait()
            return

        fetcher = EbuildFetcher(config_pool=self.config_pool,
                                fetchall=opts.fetch_all_uri,
                                fetchonly=opts.fetchonly,
                                background=self.background,
                                pkg=pkg,
                                scheduler=self.scheduler)

        self._start_task(fetcher, self._fetch_exit)
Example #8
0
	def _prefetch_exit(self, prefetcher):

		if self._was_cancelled():
			self.wait()
			return

		opts = self.opts
		pkg = self.pkg
		settings = self.settings

		if opts.fetchonly:
			if opts.pretend:
				fetcher = EbuildFetchonly(
					fetch_all=opts.fetch_all_uri,
					pkg=pkg, pretend=opts.pretend,
					settings=settings)
				retval = fetcher.execute()
				if retval == os.EX_OK:
					self._current_task = None
					self.returncode = os.EX_OK
					self._async_wait()
				else:
					# For pretend mode, the convention it to execute
					# pkg_nofetch and return a successful exitcode.
					self._start_task(SpawnNofetchWithoutBuilddir(
						background=self.background,
						portdb=self.pkg.root_config.trees[self._tree].dbapi,
						ebuild_path=self._ebuild_path,
						scheduler=self.scheduler,
						settings=self.settings),
						self._default_final_exit)
				return
			else:
				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,
					pkg=self.pkg,
					scheduler=self.scheduler)
				self._start_task(fetcher, self._fetchonly_exit)
				return

		self._build_dir = EbuildBuildDir(
			scheduler=self.scheduler, settings=settings)
		self._build_dir.lock()

		# Cleaning needs to happen before fetch, since the build dir
		# is used for log handling.
		msg = " === (%s of %s) Cleaning (%s::%s)" % \
			(self.pkg_count.curval, self.pkg_count.maxval,
			self.pkg.cpv, self._ebuild_path)
		short_msg = "emerge: (%s of %s) %s Clean" % \
			(self.pkg_count.curval, self.pkg_count.maxval, self.pkg.cpv)
		self.logger.log(msg, short_msg=short_msg)

		pre_clean_phase = EbuildPhase(background=self.background,
			phase='clean', scheduler=self.scheduler, settings=self.settings)
		self._start_task(pre_clean_phase, self._pre_clean_exit)
Example #9
0
    def _prefetch_exit(self, prefetcher):

        if self._was_cancelled():
            self.wait()
            return

        opts = self.opts
        pkg = self.pkg
        settings = self.settings

        if opts.fetchonly:
            if opts.pretend:
                fetcher = EbuildFetchonly(fetch_all=opts.fetch_all_uri,
                                          pkg=pkg,
                                          pretend=opts.pretend,
                                          settings=settings)
                retval = fetcher.execute()
                if retval == os.EX_OK:
                    self._current_task = None
                    self.returncode = os.EX_OK
                    self._async_wait()
                else:
                    # For pretend mode, the convention it to execute
                    # pkg_nofetch and return a successful exitcode.
                    self._start_task(
                        SpawnNofetchWithoutBuilddir(
                            background=self.background,
                            portdb=self.pkg.root_config.trees[
                                self._tree].dbapi,
                            ebuild_path=self._ebuild_path,
                            scheduler=self.scheduler,
                            settings=self.settings), 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=quiet_setting if logwrite_access else False,
                logfile=fetch_log if logwrite_access else None,
                pkg=self.pkg,
                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(scheduler=self.scheduler,
                                         settings=settings)
        self._start_task(AsyncTaskFuture(future=self._build_dir.async_lock()),
                         self._start_pre_clean)