From 9e81fbf345481ccd566cd92961734410e6166b8e Mon Sep 17 00:00:00 2001 From: InsanePrawn Date: Thu, 8 Dec 2022 17:21:12 +0100 Subject: [PATCH] packages/pkgbuild: split out get_pkgbuild_dirs() from discover_pkgbuilds() --- packages/pkgbuild.py | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/packages/pkgbuild.py b/packages/pkgbuild.py index ea6994b..3a4b4f4 100644 --- a/packages/pkgbuild.py +++ b/packages/pkgbuild.py @@ -432,24 +432,30 @@ def get_pkgbuild_by_name(name: str, lazy: bool = True): return get_pkgbuild_by_name(name=name, lazy=lazy) +def get_pkgbuild_dirs(quiet: bool = True, repositories: Optional[list[str]] = None) -> list[str]: + """Gets the relative paths to directories containing PKGBUILDs, optionally warns about dirs without a PKGBUILD""" + pkgbuilds_dir = config.get_path('pkgbuilds') + paths = [] + for repo in repositories or REPOSITORIES: + for dir in os.listdir(os.path.join(pkgbuilds_dir, repo)): + p = os.path.join(repo, dir) + if not os.path.exists(os.path.join(pkgbuilds_dir, p, 'PKGBUILD')): + if not quiet: + logging.warning(f"{p} doesn't include a PKGBUILD file; skipping") + continue + paths.append(p) + return paths + + def discover_pkgbuilds(parallel: bool = True, lazy: bool = True, repositories: Optional[list[str]] = None) -> dict[str, Pkgbuild]: global _pkgbuilds_cache, _pkgbuilds_scanned if lazy and _pkgbuilds_scanned: logging.debug("Reusing cached pkgbuilds repo") return _pkgbuilds_cache.copy() check_programs_wrap(['makepkg']) - pkgbuilds_dir = config.get_path('pkgbuilds') packages: dict[str, Pkgbuild] = {} - paths = [] init_pkgbuilds(interactive=False) - for repo in repositories or REPOSITORIES: - for dir in os.listdir(os.path.join(pkgbuilds_dir, repo)): - p = os.path.join(repo, dir) - if not os.path.exists(os.path.join(pkgbuilds_dir, p, 'PKGBUILD')): - logging.warning(f"{p} doesn't include a PKGBUILD file; skipping") - continue - paths.append(p) - + paths = get_pkgbuild_dirs(quiet=False, repositories=repositories) logging.info(f"Discovering PKGBUILDs{f' in repositories: {repositories}' if repositories else ''}") results = []