CI / test-unit (push) Has been cancelled
CI / test-integration (push) Has been cancelled
CI / test-env-virtual (push) Has been cancelled
CI / test-env-nix (push) Has been cancelled
CI / test-e2e (push) Has been cancelled
CI / test-virgin-user (push) Has been cancelled
CI / test-virgin-root (push) Has been cancelled
CI / codesniffer-shellcheck (push) Has been cancelled
CI / codesniffer-ruff (push) Has been cancelled
* Add `force_update` to `RepoContext` and propagate it through install/update flows * Add `pkgmgr install --update` to force re-running installers even if the same CLI layer is already loaded * Enhance `NixFlakeInstaller` to ensure correct outputs (pkgmgr + optional default for package-manager) and support refresh/upgrade with index-based fallback remove+reinstall * Make Python/Makefile installers emit an “upgraded” marker when `force_update` is used * Add E2E tests for “three times install” scenarios (makefile, nix, venv) with shared run helper * Fix git safe.directory wildcard quoting in E2E shell runner and minor cleanup/reordering of imports/comments https://chatgpt.com/share/693db0b4-6ea4-800f-b44a-f03939c7fb9e
35 lines
833 B
Python
35 lines
833 B
Python
# src/pkgmgr/actions/install/context.py
|
|
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
|
|
"""
|
|
Shared context object for repository installation steps.
|
|
|
|
This data class bundles all information needed by installer components so
|
|
they do not depend on global state or long parameter lists.
|
|
"""
|
|
|
|
from dataclasses import dataclass
|
|
from typing import Any, Dict, List
|
|
|
|
|
|
@dataclass
|
|
class RepoContext:
|
|
"""Container for all repository-related data used during installation."""
|
|
|
|
repo: Dict[str, Any]
|
|
identifier: str
|
|
repo_dir: str
|
|
repositories_base_dir: str
|
|
bin_dir: str
|
|
all_repos: List[Dict[str, Any]]
|
|
|
|
no_verification: bool
|
|
preview: bool
|
|
quiet: bool
|
|
clone_mode: str
|
|
update_dependencies: bool
|
|
|
|
# If True, allow re-running installers of the currently active layer.
|
|
force_update: bool = False
|