1
0
Fork 1
mirror of https://gitlab.postmarketos.org/postmarketOS/pmbootstrap.git synced 2025-07-13 11:29:46 +03:00

pmb: Migrate pkgrel_bump to Command (MR 2411)

Also remove args from functions that don't actually need it to
faciliate this.

This does not attempt to fix any of the bugs with pkgrel_bump.
This commit is contained in:
Stefan Hansson 2024-09-26 17:39:33 +02:00
parent 3d60673f64
commit 8a64c9da8f
No known key found for this signature in database
GPG key ID: 5AE7F5513E0885CB
4 changed files with 41 additions and 26 deletions

View file

@ -15,6 +15,7 @@ from .index import Index
from .repo_bootstrap import RepoBootstrap from .repo_bootstrap import RepoBootstrap
from .shutdown import Shutdown from .shutdown import Shutdown
from .test import Test from .test import Test
from .pkgrel_bump import PkgrelBump
from .pull import Pull from .pull import Pull
from .kconfig_check import KConfigCheck from .kconfig_check import KConfigCheck
from .kconfig_edit import KConfigEdit from .kconfig_edit import KConfigEdit
@ -32,7 +33,6 @@ unmigrated_commands = [
"flasher", "flasher",
"initfs", "initfs",
"qemu", "qemu",
"pkgrel_bump",
"aportupgrade", "aportupgrade",
"newapkbuild", "newapkbuild",
"lint", "lint",
@ -74,6 +74,8 @@ def run_command(args: PmbArgs):
command = Shutdown() command = Shutdown()
elif args.action == "test": elif args.action == "test":
command = Test(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": elif args.action == "pull":
command = Pull() command = Pull()
elif args.action == "kconfig" and args.action_kconfig == "check": elif args.action == "kconfig" and args.action_kconfig == "check":

View file

@ -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)

View file

@ -27,7 +27,6 @@ import pmb.helpers.devices
import pmb.helpers.git import pmb.helpers.git
import pmb.helpers.lint import pmb.helpers.lint
import pmb.helpers.logging import pmb.helpers.logging
import pmb.helpers.pkgrel_bump
import pmb.helpers.pmaports import pmb.helpers.pmaports
import pmb.helpers.repo import pmb.helpers.repo
import pmb.helpers.repo_missing import pmb.helpers.repo_missing
@ -501,24 +500,6 @@ def apkindex_parse(args: PmbArgs) -> None:
print(json.dumps(result, indent=4)) 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: def aportupgrade(args: PmbArgs) -> None:
if args.all or args.all_stable or args.all_git: if args.all or args.all_stable or args.all_git:
pmb.helpers.aportupgrade.upgrade_all(args) pmb.helpers.aportupgrade.upgrade_all(args)

View file

@ -3,7 +3,6 @@
from pmb.core.arch import Arch from pmb.core.arch import Arch
from pmb.helpers import logging from pmb.helpers import logging
from pmb.types import PmbArgs
import pmb.helpers.file import pmb.helpers.file
import pmb.helpers.pmaports import pmb.helpers.pmaports
import pmb.helpers.repo import pmb.helpers.repo
@ -11,7 +10,7 @@ import pmb.parse
import pmb.parse.apkindex 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. """Increase the pkgrel in the APKBUILD of a specific package.
:param pkgname: name of the 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. """Bump the pkgrel of a specific package if it is outdated in the given APKINDEX.
:param arch: the architecture, e.g. "armhf" :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 # Increase pkgrel
if len(missing): 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 True
return False 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""" """:returns: list of aport names, where the pkgrel needed to be changed"""
ret = [] ret = []
for arch in Arch.supported(): 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") logging.warning(f"{pkgname}: origin '{origin}' aport not found")
continue continue
aport = pmb.parse.apkbuild(aport_path) 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) ret.append(pkgname)
return ret return ret