Kevin Veen-Birkenbach f3c5460e48
Some checks failed
CI / test-unit (push) Has been cancelled
CI / test-integration (push) Has been cancelled
CI / test-container (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
feat(mirror): support SSH MIRRORS, multi-push origin and remote probe
- Switch MIRRORS to SSH-based URLs including custom ports/domains
  (GitHub, git.veen.world, code.cymais.cloud)
- Extend mirror IO:
  - load_config_mirrors filters empty values
  - read_mirrors_file now supports:
    * "name url" lines
    * "url" lines with auto-generated names from URL host (host[:port])
  - write_mirrors_file prints full preview content
- Enhance git_remote:
  - determine_primary_remote_url used for origin bootstrap
  - ensure_origin_remote keeps existing origin URL and
    adds all mirror URLs as additional push URLs
  - add is_remote_reachable() helper based on `git ls-remote --exit-code`
- Implement non-destructive remote mirror checks in setup_cmd:
  - `_probe_mirror()` wraps `git ls-remote` and returns (ok, message)
  - `pkgmgr mirror setup --remote` now probes each mirror URL and
    prints [OK]/[WARN] with details instead of placeholder text
- Add unit tests for mirror actions:
  - test_git_remote: default SSH URL building and primary URL selection
  - test_io: config + MIRRORS parsing including auto-named URL-only entries
  - test_setup_cmd: probe_mirror success/failure handling

https://chatgpt.com/share/693adee0-aa3c-800f-b72a-98473fdaf760
2025-12-11 17:49:31 +01:00
2025-12-10 22:56:04 +01:00
2025-03-04 13:17:09 +01:00
2025-12-11 15:46:45 +01:00

Package Manager🤖📦

GitHub Sponsors Patreon Buy Me a Coffee PayPal GitHub license GitHub repo size

Kevins's Package Manager is a configurable Python tool designed to manage multiple repositories via Bash. It automates common Git operations such as clone, pull, push, status, and more. Additionally, it handles the creation of executable wrappers and alias links for your repositories.

Features 🚀

  • Installation & Setup:
    Create executable wrappers with auto-detected commands (e.g. main.sh or main.py).

  • Git Operations:
    Easily perform git pull, push, status, commit, diff, add, show, and checkout with extra parameters passed through.

  • Configuration Management:
    Manage repository configurations via a default file (config/defaults.yaml) and a user-specific file (config/config.yaml). Initialize, add, delete, or ignore entries using subcommands.

  • Path & Listing:
    Display repository paths or list all configured packages with their details.

  • Custom Aliases:
    Generate and manage custom aliases for easy command invocation.

Architecture & Setup Map 🗺️

The following diagram provides a full overview of PKGMGRs package structure, installation layers, and setup controller flow:

PKGMGR Architecture

Diagram status: Stand: 11. Dezember 2025
Always-up-to-date version: https://s.veen.world/pkgmgrmp

Installation ⚙️

Clone the repository and ensure your ~/.local/bin is in your system PATH:

git clone https://github.com/kevinveenbirkenbach/package-manager.git
cd package-manager

Install make and pip if not installed yet:

pacman -S make python-pip

Then, run the following command to set up the project:

make setup

The make setup command will:

  • Make main.py executable.
  • Install required packages from requirements.txt.
  • Execute python main.py install to complete the installation.

License 📄

This project is licensed under the MIT License.

Author 👤

Kevin Veen-Birkenbach
https://www.veen.world

Description
No description provided
Readme MIT 9 MiB
Languages
Python 91.4%
Shell 7.2%
Makefile 0.7%
Nix 0.4%
Dockerfile 0.2%