diff --git a/pmb/commands/__init__.py b/pmb/commands/__init__.py index a8ea02fe0465c04722e898eb3d689febaa9b4aca..a66b260ec9acd946b8f4985fae495e12b448e59c 100644 --- a/pmb/commands/__init__.py +++ b/pmb/commands/__init__.py @@ -15,6 +15,7 @@ from .index import Index from .repo_bootstrap import RepoBootstrap from .shutdown import Shutdown from .test import Test +from .pkgrel_bump import PkgrelBump from .pull import Pull from .kconfig_check import KConfigCheck from .kconfig_edit import KConfigEdit @@ -32,7 +33,6 @@ unmigrated_commands = [ "flasher", "initfs", "qemu", - "pkgrel_bump", "aportupgrade", "newapkbuild", "lint", @@ -74,6 +74,8 @@ def run_command(args: PmbArgs): command = Shutdown() elif args.action == "test": command = Test(args.action_test) + elif args.action == "pkgrel_bump": + command = PkgrelBump(args.packages, args.dry, args.auto) elif args.action == "pull": command = Pull() elif args.action == "kconfig" and args.action_kconfig == "check": diff --git a/pmb/commands/pkgrel_bump.py b/pmb/commands/pkgrel_bump.py new file mode 100644 index 0000000000000000000000000000000000000000..2d413c5ce5ea72fdd419f9428d5f97c5a696a375 --- /dev/null +++ b/pmb/commands/pkgrel_bump.py @@ -0,0 +1,33 @@ +# Copyright 2024 Stefan Hansson +# SPDX-License-Identifier: GPL-3.0-or-later + +import sys + +from pmb import commands +from pmb.helpers import logging +import pmb.helpers.pkgrel_bump + + +class PkgrelBump(commands.Command): + def __init__(self, packages: list[str], dry_run: bool, auto: bool) -> None: + self.packages = packages + self.dry_run = dry_run + self.auto = auto + + def run(self) -> None: + would_bump = True + + if self.auto: + would_bump = bool(pmb.helpers.pkgrel_bump.auto(self.dry_run)) + else: + # Each package must exist + for package in self.packages: + pmb.helpers.pmaports.find(package) + + # Increase pkgrel + for package in self.packages: + pmb.helpers.pkgrel_bump.package(package, dry=self.dry_run) + + if self.dry_run and would_bump: + logging.info("Pkgrels of package(s) would have been bumped!") + sys.exit(1) diff --git a/pmb/helpers/frontend.py b/pmb/helpers/frontend.py index f51b938668c53f7d83dba060eb3836f6d2093419..5ea1201d53c3e797e4e936d4fbb0f638d01a8d9d 100644 --- a/pmb/helpers/frontend.py +++ b/pmb/helpers/frontend.py @@ -27,7 +27,6 @@ import pmb.helpers.devices import pmb.helpers.git import pmb.helpers.lint import pmb.helpers.logging -import pmb.helpers.pkgrel_bump import pmb.helpers.pmaports import pmb.helpers.repo import pmb.helpers.repo_missing @@ -501,24 +500,6 @@ def apkindex_parse(args: PmbArgs) -> None: print(json.dumps(result, indent=4)) -def pkgrel_bump(args: PmbArgs) -> None: - would_bump = True - if args.auto: - would_bump = bool(pmb.helpers.pkgrel_bump.auto(args, args.dry)) - else: - # Each package must exist - for package in args.packages: - pmb.helpers.pmaports.find(package) - - # Increase pkgrel - for package in args.packages: - pmb.helpers.pkgrel_bump.package(args, package, dry=args.dry) - - if args.dry and would_bump: - logging.info("Pkgrels of package(s) would have been bumped!") - sys.exit(1) - - def aportupgrade(args: PmbArgs) -> None: if args.all or args.all_stable or args.all_git: pmb.helpers.aportupgrade.upgrade_all(args) diff --git a/pmb/helpers/pkgrel_bump.py b/pmb/helpers/pkgrel_bump.py index c1500c4f6ae226c8ae0133e44d7c21e93ac3fa73..58fe74007f2ea57b8e6fedca33eb603326f92491 100644 --- a/pmb/helpers/pkgrel_bump.py +++ b/pmb/helpers/pkgrel_bump.py @@ -3,7 +3,6 @@ from pmb.core.arch import Arch from pmb.helpers import logging -from pmb.types import PmbArgs import pmb.helpers.file import pmb.helpers.pmaports import pmb.helpers.repo @@ -11,7 +10,7 @@ import pmb.parse import pmb.parse.apkindex -def package(args: PmbArgs, pkgname: str, reason="", dry: bool = False) -> None: +def package(pkgname: str, reason="", dry: bool = False) -> None: """Increase the pkgrel in the APKBUILD of a specific package. :param pkgname: name of the package @@ -54,7 +53,7 @@ def package(args: PmbArgs, pkgname: str, reason="", dry: bool = False) -> None: ) -def auto_apkindex_package(args: PmbArgs, arch, aport, apk, dry: bool = False) -> bool: +def auto_apkindex_package(arch, aport, apk, dry: bool = False) -> bool: """Bump the pkgrel of a specific package if it is outdated in the given APKINDEX. :param arch: the architecture, e.g. "armhf" @@ -103,13 +102,13 @@ def auto_apkindex_package(args: PmbArgs, arch, aport, apk, dry: bool = False) -> # Increase pkgrel if len(missing): - package(args, pkgname, reason=", missing depend(s): " + ", ".join(missing), dry=dry) + package(pkgname, reason=", missing depend(s): " + ", ".join(missing), dry=dry) return True return False -def auto(args: PmbArgs, dry=False) -> list[str]: +def auto(dry=False) -> list[str]: """:returns: list of aport names, where the pkgrel needed to be changed""" ret = [] for arch in Arch.supported(): @@ -128,6 +127,6 @@ def auto(args: PmbArgs, dry=False) -> list[str]: logging.warning(f"{pkgname}: origin '{origin}' aport not found") continue aport = pmb.parse.apkbuild(aport_path) - if auto_apkindex_package(args, arch, aport, apk, dry): + if auto_apkindex_package(arch, aport, apk, dry): ret.append(pkgname) return ret