aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSiddhanth Rathod <xsiddhanthrathod@gmail.com>2024-01-19 12:29:55 +0530
committerSam James <sam@gentoo.org>2024-01-19 07:03:39 +0000
commitbd9c485781584e951e703ee191308db23506af9a (patch)
tree661c6d4bbe83b033325a92c990f37548a2c0421a
parentNEWS, meson.build: prepare for gentoolkit-0.6.5 (diff)
downloadgentoolkit-bd9c485781584e951e703ee191308db23506af9a.tar.gz
gentoolkit-bd9c485781584e951e703ee191308db23506af9a.tar.bz2
gentoolkit-bd9c485781584e951e703ee191308db23506af9a.zip
eclean: handle when git3-src doesn't exist (port to Pathlib)
Followup to c584d83705a2ca08961e4f0b541442fdf9a75947. Bug: https://bugs.gentoo.org/922455 Signed-off-by: Siddhanth Rathod <xsiddhanthrathod@gmail.com> Closes: https://github.com/gentoo/gentoolkit/pull/41 Signed-off-by: Sam James <sam@gentoo.org>
-rw-r--r--pym/gentoolkit/eclean/search.py50
1 files changed, 25 insertions, 25 deletions
diff --git a/pym/gentoolkit/eclean/search.py b/pym/gentoolkit/eclean/search.py
index 3610920..2eebcfd 100644
--- a/pym/gentoolkit/eclean/search.py
+++ b/pym/gentoolkit/eclean/search.py
@@ -5,12 +5,13 @@
import os
+import shlex
import stat
import sys
-import shlex
from functools import partial
from inspect import signature
-from typing import Optional
+from pathlib import Path
+from typing import Optional, Set
import portage
from portage.dep import Atom, use_reduce
@@ -136,7 +137,7 @@ class DistfilesSearch:
# gather the files to be cleaned
self.output("...checking limits for %d ebuild sources" % len(pkgs))
- vcs = self.vcs_check(_distdir)
+ vcs = self.vcs_check(Path(_distdir))
checks = self._get_default_checks(size_limit, time_limit, exclude, destructive)
checks.extend(extra_checks)
clean_me = self._check_limits(_distdir, checks, clean_me)
@@ -335,31 +336,30 @@ class DistfilesSearch:
deprecated.update(_deprecated)
return pkgs, deprecated
- def vcs_check(self, distdir):
+ def vcs_check(self, distdir: Path) -> Set:
"""Checks $DISTDIR/vcs-src for checkouts which are not in the vardb"""
# For now we only check git
- vcs_src = os.path.join(distdir, "git3-src")
- if not os.path.exists(vcs_src):
- return {}
-
+ vcs_src = distdir / "git3-src"
expected_dirs = set()
- for i in set(self.vardb.cpv_all()):
- if "live" in self.vardb.aux_get(i, ["PROPERTIES"]):
- try:
- # try to get the dir names of the cloned
- # repos from the environment file.
- vcs_dir = {
- i.split("=")[-1].strip('"')
- for i in shlex.split(
- self.vardb._aux_env_search(i, ["EVCS_STORE_DIRS"])[
- "EVCS_STORE_DIRS"
- ].strip("()")
- )
- }
- expected_dirs.update(vcs_dir)
- except KeyError:
- pass
- actual_dirs = {os.path.join(vcs_src, i) for i in os.listdir(vcs_src)}
+ actual_dirs = set()
+ if vcs_src.is_dir():
+ for i in set(self.vardb.cpv_all()):
+ if "live" in self.vardb.aux_get(i, ["PROPERTIES"]):
+ try:
+ # try to get the dir names of the cloned
+ # repos from the environment file.
+ vcs_dir = {
+ i.split("=")[-1].strip('"')
+ for i in shlex.split(
+ self.vardb._aux_env_search(i, ["EVCS_STORE_DIRS"])[
+ "EVCS_STORE_DIRS"
+ ].strip("()")
+ )
+ }
+ expected_dirs.update(vcs_dir)
+ except KeyError:
+ pass
+ actual_dirs = {str(i) for i in vcs_src.iterdir() if i.is_dir()}
return actual_dirs.difference(expected_dirs)
def _fetch_restricted(self, pkgs_, cpvs):