public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
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


             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