Added clone mode to update

This commit is contained in:
Kevin Veen-Birkenbach
2025-04-21 13:26:24 +02:00
parent 6541ca94bd
commit 69845e9b86
4 changed files with 68 additions and 16 deletions

20
main.py
View File

@@ -240,7 +240,16 @@ For detailed help on each command, use:
# Dispatch commands.
if args.command == "install":
install_repos(selected, REPOSITORIES_BASE_DIR, BINARIES_DIRECTORY, ALL_REPOSITORIES, args.no_verification, preview=args.preview, quiet=args.quiet, clone_mode=args.clone_mode)
install_repos(
selected,
REPOSITORIES_BASE_DIR,
BINARIES_DIRECTORY,
ALL_REPOSITORIES,
args.no_verification,
args.preview,
args.quiet,
args.clone_mode
)
elif args.command == "create":
from pkgmgr.create_repo import create_repo
# If no identifiers are provided, you can decide to either use the repository of the current folder
@@ -265,10 +274,11 @@ For detailed help on each command, use:
BINARIES_DIRECTORY,
ALL_REPOSITORIES,
args.no_verification,
system_update=args.system,
preview=args.preview,
quiet=args.quiet,
update_dependencies=args.dependencies
args.system,
args.preview,
args.quiet,
args.dependencies,
args.clone_mode
)
elif args.command == "release":
if not selected:

View File

@@ -4,7 +4,14 @@ from pkgmgr.get_repo_dir import get_repo_dir
from pkgmgr.get_repo_identifier import get_repo_identifier
from pkgmgr.verify import verify_repository
def clone_repos(selected_repos, repositories_base_dir: str, all_repos, preview: bool, no_verification: bool, clone_mode: str = "ssh"):
def clone_repos(
selected_repos,
repositories_base_dir: str,
all_repos,
preview: bool,
no_verification: bool,
clone_mode: str
):
for repo in selected_repos:
repo_identifier = get_repo_identifier(repo, all_repos)
repo_dir = get_repo_dir(repositories_base_dir, repo)

View File

@@ -10,7 +10,17 @@ from pkgmgr.run_command import run_command
from pkgmgr.verify import verify_repository
from pkgmgr.clone_repos import clone_repos
def install_repos(selected_repos, repositories_base_dir, bin_dir, all_repos, no_verification, preview=False, quiet=False, clone_mode: str = "ssh", update_dependencies: bool = True):
def install_repos(
selected_repos,
repositories_base_dir,
bin_dir,
all_repos,
no_verification,
preview,
quiet,
clone_mode: str,
update_dependencies: bool
):
"""
Install repositories by creating symbolic links, running setup commands, and
installing additional packages if a requirements.yml or requirements.txt file is found.
@@ -21,7 +31,7 @@ def install_repos(selected_repos, repositories_base_dir, bin_dir, all_repos, no_
if not os.path.exists(repo_dir):
print(f"Repository directory '{repo_dir}' does not exist. Cloning it now...")
# Pass the clone_mode parameter to clone_repos
clone_repos([repo], repositories_base_dir, all_repos, preview, no_verification, clone_mode=clone_mode)
clone_repos([repo], repositories_base_dir, all_repos, preview, no_verification, clone_mode)
if not os.path.exists(repo_dir):
print(f"Cloning failed for repository {repo_identifier}. Skipping installation.")
continue

View File

@@ -2,21 +2,46 @@ import sys
from pkgmgr.pull_with_verification import pull_with_verification
from pkgmgr.install_repos import install_repos
def update_repos(selected_repos, repositories_base_dir, bin_dir, all_repos, no_verification, system_update=False, preview=False, quiet=False, update_dependencies=False):
def update_repos(
selected_repos,
repositories_base_dir,
bin_dir,
all_repos,
no_verification,
system_update,
preview: bool,
quiet: bool,
update_dependencies: bool,
clone_mode: str):
"""
Update repositories by pulling latest changes and installing them.
Parameters:
- selected_repos: List of selected repositories.
- repositories_base_dir: Base directory for repositories.
- bin_dir: Directory for symbolic links.
- all_repos: All repository configurations.
- no_verification: Whether to skip verification.
- system_update: Whether to run system update.
- preview: If True, only show commands without executing.
- quiet: If True, suppress messages.
- update_dependencies: Whether to update dependent repositories.
- clone_mode: Method to clone repositories (ssh or https).
"""
pull_with_verification(selected_repos, repositories_base_dir, all_repos, extra_args=[], no_verification=no_verification, preview=preview)
install_repos(
selected_repos,
repositories_base_dir,
bin_dir,
all_repos,
no_verification=no_verification,
preview=preview,
quiet=quiet,
update_dependencies=update_dependencies
no_verification,
preview,
quiet,
update_dependencies,
clone_mode
)
if system_update:
from pkgmgr.run_command import run_command
run_command("yay -Syu", preview=preview)