pull: move to pmb/commands/pull.py (MR 2252)

Fixes:
  TypeError: pull() takes 0 positional arguments but 1 was given
This commit is contained in:
Oliver Smith 2024-06-20 20:38:10 +02:00
parent e2461f00a2
commit 9e2bbf80e0
No known key found for this signature in database
GPG key ID: 5AE7F5513E0885CB
3 changed files with 41 additions and 27 deletions

View file

@ -14,6 +14,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 .pull import Pull
"""New way to model pmbootstrap subcommands that can be invoked without PmbArgs.""" """New way to model pmbootstrap subcommands that can be invoked without PmbArgs."""
@ -49,7 +50,6 @@ unmigrated_commands = [
"apkindex_parse", "apkindex_parse",
"config", "config",
"bootimg_analyze", "bootimg_analyze",
"pull",
] ]
def run_command(args: PmbArgs): def run_command(args: PmbArgs):
@ -71,6 +71,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 == "pull":
command = Pull()
else: else:
raise NotImplementedError(f"Command '{args.action}' is not implemented.") raise NotImplementedError(f"Command '{args.action}' is not implemented.")

38
pmb/commands/pull.py Normal file
View file

@ -0,0 +1,38 @@
# Copyright 2024 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
from __future__ import annotations
from pmb import commands
import pmb.helpers.git
import pmb.config
import logging
class Pull(commands.Command):
def __init__(self):
pass
def run(self):
failed = []
for repo in pmb.config.git_repos.keys():
if pmb.helpers.git.pull(repo) < 0:
failed.append(repo)
if not failed:
return True
logging.info("---")
logging.info("WARNING: failed to update: " + ", ".join(failed))
logging.info("")
logging.info("'pmbootstrap pull' will only update the repositories, if:")
logging.info("* they are on an officially supported branch (e.g. master)")
logging.info("* the history is not conflicting (fast-forward is possible)")
logging.info("* the git workdirs are clean")
logging.info("You have changed mentioned repositories, so they don't meet")
logging.info("these conditions anymore.")
logging.info("")
logging.info("Fix and try again:")
for name_repo in failed:
logging.info("* " + pmb.helpers.git.get_path(name_repo))
logging.info("---")
return False

View file

@ -593,32 +593,6 @@ def bootimg_analyze(args: PmbArgs):
logging.info(tmp_output) logging.info(tmp_output)
def pull():
failed = []
for repo in pmb.config.git_repos.keys():
if pmb.helpers.git.pull(repo) < 0:
failed.append(repo)
if not failed:
return True
logging.info("---")
logging.info("WARNING: failed to update: " + ", ".join(failed))
logging.info("")
logging.info("'pmbootstrap pull' will only update the repositories, if:")
logging.info("* they are on an officially supported branch (e.g. master)")
logging.info("* the history is not conflicting (fast-forward is possible)")
logging.info("* the git workdirs are clean")
logging.info("You have changed mentioned repositories, so they don't meet")
logging.info("these conditions anymore.")
logging.info("")
logging.info("Fix and try again:")
for name_repo in failed:
logging.info("* " + pmb.helpers.git.get_path(name_repo))
logging.info("---")
return False
def lint(args: PmbArgs): def lint(args: PmbArgs):
packages: Sequence[str] = args.packages packages: Sequence[str] = args.packages
if not packages: if not packages: