From 98140565ef08c5ce012f3aae4a4a316f45d173f3 Mon Sep 17 00:00:00 2001 From: InsanePrawn Date: Mon, 5 Sep 2022 17:31:04 +0200 Subject: [PATCH] packages: parse_pkgbuild(): handle split packages properly --- packages/pkgbuild.py | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/packages/pkgbuild.py b/packages/pkgbuild.py index 4c02c54..872ee0f 100644 --- a/packages/pkgbuild.py +++ b/packages/pkgbuild.py @@ -236,14 +236,12 @@ def parse_pkgbuild(relative_pkg_dir: str, _config: Optional[ConfigStateHolder] = splits = line.split(' = ') if line.startswith('pkgbase'): base_package.name = splits[1] - multi_pkgs = True elif line.startswith('pkgname'): - if multi_pkgs: - current = SubPkgbuild(splits[1], base_package) - assert isinstance(base_package.subpackages, list) - base_package.subpackages.append(current) - else: - current.name = splits[1] + current = SubPkgbuild(splits[1], base_package) + assert isinstance(base_package.subpackages, list) + base_package.subpackages.append(current) + if current.name != base_package.name: + multi_pkgs = True elif line.startswith('pkgver'): current.pkgver = splits[1] elif line.startswith('pkgrel'): @@ -258,12 +256,10 @@ def parse_pkgbuild(relative_pkg_dir: str, _config: Optional[ConfigStateHolder] = current.depends.append(splits[1].split('=')[0].split(': ')[0]) results: list[Pkgbuild] = list(base_package.subpackages) - if len(results) > 1: + if multi_pkgs: logging.debug(f" Split package detected: {base_package.name}: {results}") - base_package.update_version() - else: - results = [base_package] + base_package.update_version() for pkg in results: assert isinstance(pkg, Pkgbuild) pkg.depends = list(set(pkg.depends)) # deduplicate dependencies