Skip to content

Commit 006a733

Browse files
committed
find: filter out unbuildable packages when expanding a group
1 parent 4af38e5 commit 006a733

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

acbs/find.py

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from typing import Dict, List, Optional
44

55
from acbs.const import TMP_DIR
6-
from acbs.parser import ACBSPackageInfo, ACBSSourceInfo, parse_package
6+
from acbs.parser import ACBSPackageInfo, ACBSSourceInfo, parse_package, check_buildability
77
from acbs.utils import make_build_dir
88

99

@@ -48,6 +48,24 @@ def check_package_group(name: str, search_path: str, entry_path: str, modifiers:
4848
return None
4949

5050

51+
def filter_unbuildable_packages(packages: List[ACBSPackageInfo], group_name: Optional[str]=None) -> List[ACBSPackageInfo]:
52+
"""Filter out packages that are not buildable."""
53+
filtered_packages = []
54+
unbuildable = []
55+
for package in packages:
56+
if check_buildability(package):
57+
filtered_packages.append(package)
58+
else:
59+
unbuildable.append(package.name)
60+
if unbuildable:
61+
logging.warning(
62+
"The following packages %swill be skipped as they are not buildable:\n\t%s",
63+
f"(in {group_name}) " if group_name else "",
64+
" ".join(unbuildable),
65+
)
66+
return filtered_packages
67+
68+
5169
def find_package(name: str, search_path: str, modifiers: str, tmp_dir: str = TMP_DIR) -> List[ACBSPackageInfo]:
5270
if os.path.isfile(os.path.join(search_path, name)):
5371
with open(os.path.join(search_path, name), 'rt') as f:
@@ -66,7 +84,7 @@ def find_package(name: str, search_path: str, modifiers: str, tmp_dir: str = TMP
6684
f'Package {p} requested in {name} was not found.')
6785
results.extend(found)
6886
print()
69-
return results
87+
return filter_unbuildable_packages(results, group_name=name)
7088
return find_package_inner(name, search_path, modifiers=modifiers, tmp_dir=tmp_dir)
7189

7290

0 commit comments

Comments
 (0)