Kevin Veen-Birkenbach 640b1042c2 git commit -m "Harden installers for Nix, OS packages and Docker CA handling
- NixFlakeInstaller:
  - Skip when running inside a Nix dev shell (IN_NIX_SHELL).
  - Add PKGMGR_DISABLE_NIX_FLAKE_INSTALLER kill-switch for CI/debugging.
  - Ensure run() respects supports() and handles preview/allow_failure cleanly.

- DebianControlInstaller:
  - Introduce _privileged_prefix() to handle sudo vs. root vs. no elevation.
  - Avoid hard-coded sudo usage and degrade gracefully when neither sudo nor
    root is available.
  - Improve messaging around build-dep and .deb installation.

- RpmSpecInstaller:
  - Prepare rpmbuild tree and source tarball in ~/rpmbuild/SOURCES based on
    Name/Version from the spec file.
  - Reuse a helper to resolve the rpmbuild topdir.
  - Install built RPMs via dnf/yum when available, falling back to rpm -Uvh
    to avoid file conflicts during upgrades.

- PythonInstaller:
  - Skip pip-based installation inside Nix dev shells (IN_NIX_SHELL).
  - Add PKGMGR_DISABLE_PYTHON_INSTALLER kill-switch.
  - Make pip command resolution explicit and overridable via PKGMGR_PIP.
  - Type-hint supports() and run() with RepoContext/InstallContext.

- Docker entrypoint:
  - Add robust CA bundle detection for Nix, Git, Python requests and curl.
  - Export NIX_SSL_CERT_FILE, SSL_CERT_FILE, REQUESTS_CA_BUNDLE and
    GIT_SSL_CAINFO from a single detected CA path.
  - Improve logging and section comments in the entrypoint script."

https://chatgpt.com/share/69387df8-bda0-800f-a053-aa9e2999dc84
2025-12-09 20:52:07 +01:00
2025-12-08 22:40:50 +01:00
2025-12-09 17:54:41 +01:00
2025-12-09 17:54:41 +01:00
2025-12-07 21:52:04 +01:00
2025-12-09 17:54:41 +01:00
2025-12-09 17:54:41 +01:00
2025-03-04 13:17:09 +01:00
2025-12-09 17:54:41 +01:00
2025-12-09 17:54:41 +01:00
2025-12-09 17:54:41 +01:00
2025-07-11 07:37:21 +02: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.

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.

Docker Quickstart 🐳

Alternatively to installing locally, you can use Docker: build the image with

docker build --no-cache -t pkgmgr .

or alternativ pull it via

docker pull kevinveenbirkenbach/pkgmgr:latest

and then run

docker run --rm pkgmgr --help

Usage 📖

Run the script with different commands. For example:

  • Install all packages:
    pkgmgr install --all
    
  • Pull updates for a specific repository:
    pkgmgr pull pkgmgr
    
  • Commit changes with extra Git parameters:
    pkgmgr commit pkgmgr -- -m "Your commit message"
    
  • List all configured packages:
    pkgmgr config show
    
  • Manage configuration:
    pkgmgr config init
    pkgmgr config add
    pkgmgr config edit
    pkgmgr config delete <identifier>
    pkgmgr config ignore <identifier> --set true
    

License 📄

This project is licensed under the MIT License.

Author 👤

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


Repository: github.com/kevinveenbirkenbach/package-manager

Created with AI 🤖 - View conversation

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