From 0c179a5cf9ebf6cf642fef6d1fbaf716067a0e3c Mon Sep 17 00:00:00 2001 From: Daniele Debernardi Date: Wed, 25 Mar 2020 22:31:40 +0100 Subject: [PATCH] pmb.helpers.pmaports: cache _glob_apkbuilds results (!1896) --- pmb/helpers/args.py | 1 + pmb/helpers/pmaports.py | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/pmb/helpers/args.py b/pmb/helpers/args.py index 5ec78c53..f2278f08 100644 --- a/pmb/helpers/args.py +++ b/pmb/helpers/args.py @@ -131,6 +131,7 @@ def add_cache(args): "find_aport": {}, "pmb.helpers.package.depends_recurse": {}, "pmb.helpers.package.get": {}, + "pmb.helpers.pmaports._glob_apkbuilds": {}, "pmb.helpers.repo.update": repo_update}) diff --git a/pmb/helpers/pmaports.py b/pmb/helpers/pmaports.py index e47b1c8e..33613820 100644 --- a/pmb/helpers/pmaports.py +++ b/pmb/helpers/pmaports.py @@ -13,7 +13,16 @@ import pmb.parse def _glob_apkbuilds(args, pkgname='*'): - return glob.glob(args.aports + "/**/" + pkgname + "/APKBUILD", recursive=True) + # Try to get a cached result first (we assume, that the aports don't change + # in one pmbootstrap call) + if pkgname in args.cache["pmb.helpers.pmaports._glob_apkbuilds"]: + return args.cache["pmb.helpers.pmaports._glob_apkbuilds"][pkgname] + + ret = glob.glob(args.aports + "/**/" + pkgname + "/APKBUILD", recursive=True) + + # Save result in cache + args.cache["pmb.helpers.pmaports._glob_apkbuilds"][pkgname] = ret + return ret def get_list(args, pkgname='*'):