This commit removes the `run_command`-based execution model for Nix flake installations and replaces it with a direct `os.system` invocation. This ensures that *all* Nix diagnostics (stdout/stderr) are fully visible and no longer suppressed by wrapper logic. Key changes: * Directly run `nix profile install` via `os.system` for full error output * Correctly decode real exit codes via `os.WIFEXITED` / `os.WEXITSTATUS` * Preserve mandatory/optional behavior for flake outputs * Update unit tests to the new execution model using `unittest` * Add complete coverage for: * successful installs * mandatory failures → raise SystemExit(code) * optional failures → warn and continue * environment-based disabling via `PKGMGR_DISABLE_NIX_FLAKE_INSTALLER` * Remove obsolete mocks and legacy test logic that assumed `run_command` Overall, this improves transparency, debuggability, and correctness of the Nix flake installer while maintaining full backward compatibility at the interface level. https://chatgpt.com/share/693b0a20-99f4-800f-b789-b00a50413612
Package Manager🤖📦
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.shormain.py). -
Git Operations:
Easily performgit pull,push,status,commit,diff,add,show, andcheckoutwith 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 PKGMGR’s package structure, installation layers, and setup controller flow:
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.pyexecutable. - Install required packages from
requirements.txt. - Execute
python main.py installto complete the installation.
License 📄
This project is licensed under the MIT License.
Author 👤
Kevin Veen-Birkenbach
https://www.veen.world
