From: "Brian Dolbec" <dolsen@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/gentoolkit:master commit in: pym/gentoolkit/eclean/
Date: Sat, 9 Jul 2022 21:46:19 +0000 (UTC) [thread overview]
Message-ID: <1657403104.680dd160e1e5a41f008bd1a47afa2da2eb25714f.dolsen@gentoo> (raw)
commit: 680dd160e1e5a41f008bd1a47afa2da2eb25714f
Author: Brian Dolbec <dolsen <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 9 21:41:39 2022 +0000
Commit: Brian Dolbec <dolsen <AT> gentoo <DOT> org>
CommitDate: Sat Jul 9 21:45:04 2022 +0000
URL: https://gitweb.gentoo.org/proj/gentoolkit.git/commit/?id=680dd160
eclean: Complete migration to imported emaint code
eclean-pkg now uses imported emaint binhost code to run,
Properly handle --quiet option for progressbar suppression from emaint.
Keeps the standalone emaint binhost subprocess call as backup.
Closes: https://bugs.gentoo.org/688550
Signed-off-by: Brian Dolbec <dolsen <AT> gentoo.org>
pym/gentoolkit/eclean/clean.py | 5 ++--
pym/gentoolkit/eclean/cli.py | 2 +-
pym/gentoolkit/eclean/pkgindex.py | 56 ++++++++++++++++++---------------------
3 files changed, 30 insertions(+), 33 deletions(-)
diff --git a/pym/gentoolkit/eclean/clean.py b/pym/gentoolkit/eclean/clean.py
index a6358a4..37a042a 100644
--- a/pym/gentoolkit/eclean/clean.py
+++ b/pym/gentoolkit/eclean/clean.py
@@ -19,8 +19,9 @@ class CleanUp:
or bypassing/ignoring
"""
- def __init__(self, controller):
+ def __init__(self, controller, quiet):
self.controller = controller
+ self.quiet = quiet
def clean_dist(self, clean_dict):
"""Calculate size of each entry for display, prompt user if needed,
@@ -64,7 +65,7 @@ class CleanUp:
# emaint is not yet importable so call it
# print a blank line here for separation
print()
- clean_size += index_control.call_emaint()
+ clean_size += index_control.clean_pkgs_index(self.quiet)
# return total size of deleted or to delete files
return clean_size
diff --git a/pym/gentoolkit/eclean/cli.py b/pym/gentoolkit/eclean/cli.py
index e3bc21a..23c7f3b 100644
--- a/pym/gentoolkit/eclean/cli.py
+++ b/pym/gentoolkit/eclean/cli.py
@@ -555,7 +555,7 @@ def doAction(action, options, exclude={}, output=None):
)
# initialize our cleaner
- cleaner = CleanUp(output.progress_controller)
+ cleaner = CleanUp(output.progress_controller, options["quiet"])
# actually clean files if something was found
if clean_me:
diff --git a/pym/gentoolkit/eclean/pkgindex.py b/pym/gentoolkit/eclean/pkgindex.py
index 617b437..d0878a1 100644
--- a/pym/gentoolkit/eclean/pkgindex.py
+++ b/pym/gentoolkit/eclean/pkgindex.py
@@ -11,6 +11,11 @@ import gentoolkit.pprinter as pp
from gentoolkit.eprefix import EPREFIX
import portage
+from portage.module import (
+ InvalidModuleName,
+ Modules,
+)
+from portage.emaint.main import TaskHandler
class PkgIndex:
@@ -32,37 +37,36 @@ class PkgIndex:
@sets: self.binhost to BinhostHandler class
@rtype: boolean
"""
- # About noqa below: I don't understand how this code can run at all.
- # TODO: verify soundness
try:
- self.emaint_control = Modules() # noqa
+ self.emaint_control = Modules()
self.binhost = self.emaint_control._get_class("binhost")
- except InvalidModuleName as er: # noqa
+ except InvalidModuleName as er:
print(pp.error("Error importing emaint binhost module"), file=sys.stderr)
print(pp.error("Original error: " + er), file=sys.stderr)
except:
return False
return True
- def _load_modules(self):
- """Import the emaint modules and report the success/fail of them"""
- try:
- from emaint.module import Modules # noqa
- from emaint.main import TaskHandler # noqa
- except ImportError:
- return False
- return True
+ def clean_pkgs_index(self, quiet):
+ """This will clean the binpkgs packages index file
- def clean_pkgs_index(
- self,
- ):
- """This will clean the binpkgs packages index file"""
- go = self._load_modules()
- if go:
- if self.get_emaint_binhost():
- self.taskmaster = TaskHandler(show_progress_bar=True) # noqa
- tasks = [self.binhost]
- self.taskmaster.run_tasks(tasks)
+ @param quiet: boolean
+ @return: the difference in file size
+ """
+ file_ = os.path.join(portage.settings["PKGDIR"], "Packages")
+ statinfo = os.stat(file_)
+ size1 = statinfo.st_size
+ show_progress = not quiet
+ if self.get_emaint_binhost():
+ self.taskmaster = TaskHandler(show_progress_bar=show_progress)
+ tasks = [self.binhost]
+ self.taskmaster.run_tasks(tasks)
+ else:
+ self.call_emaint()
+ statinfo = os.stat(file_)
+ clean_size = size1 - statinfo.st_size
+ self.controller("\n", clean_size, "Packages Index", file_, "Index")
+ return clean_size
def call_emaint(self):
"""Run the stand alone emaint script from
@@ -71,9 +75,6 @@ class PkgIndex:
@rtype: integer
@return: the difference in file size
"""
- file_ = os.path.join(portage.settings["PKGDIR"], "Packages")
- statinfo = os.stat(file_)
- size1 = statinfo.st_size
try:
retcode = subprocess.call(self.emaint_cmd, shell=True)
if retcode < 0:
@@ -83,8 +84,3 @@ class PkgIndex:
)
except OSError as e:
print(pp.error("Execution failed:" + e), file=sys.stderr)
- print()
- statinfo = os.stat(file_)
- clean_size = size1 - statinfo.st_size
- self.controller(clean_size, "Packages Index", file_, "Index")
- return clean_size
next reply other threads:[~2022-07-09 21:46 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-09 21:46 Brian Dolbec [this message]
-- strict thread matches above, loose matches on Subject: below --
2024-05-03 5:42 [gentoo-commits] proj/gentoolkit:master commit in: pym/gentoolkit/eclean/ Sam James
2024-05-03 5:40 Sam James
2024-05-03 5:40 Sam James
2024-05-03 5:40 Sam James
2024-05-03 5:11 Sam James
2024-02-18 2:19 Brian Dolbec
2024-02-18 2:19 Brian Dolbec
2024-01-19 7:03 Sam James
2024-01-19 6:15 Sam James
2024-01-12 19:16 Matt Turner
2023-12-03 7:51 Sam James
2023-10-08 3:28 Sam James
2023-10-08 3:28 Sam James
2023-09-29 7:20 Sam James
2023-08-24 19:52 Sam James
2023-08-22 20:54 Sam James
2023-08-22 20:52 Sam James
2023-08-22 20:50 Sam James
2023-08-22 20:50 Sam James
2023-08-22 20:35 Sam James
2023-08-21 5:16 Sam James
2023-08-21 5:16 Sam James
2022-07-11 7:17 Brian Dolbec
2022-07-09 22:45 Brian Dolbec
2022-06-01 10:25 Yixun Lan
2022-05-28 15:28 Yixun Lan
2022-02-09 10:48 Sam James
2020-06-09 17:29 Zac Medico
2020-03-12 16:51 Matt Turner
2020-03-12 16:51 Matt Turner
2020-01-03 4:31 Matt Turner
2019-12-05 16:51 Matt Turner
2019-12-05 16:51 Matt Turner
2019-09-13 23:34 Zac Medico
2017-12-12 5:51 Zac Medico
2016-07-03 6:29 Zac Medico
2016-07-01 6:19 Zac Medico
2016-06-24 21:40 Zac Medico
2016-06-24 21:36 Zac Medico
2016-06-23 20:01 Paul Varner
2015-10-19 21:33 Paul Varner
2015-10-15 21:39 Paul Varner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1657403104.680dd160e1e5a41f008bd1a47afa2da2eb25714f.dolsen@gentoo \
--to=dolsen@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox