diff --git a/README.md b/README.md new file mode 100644 index 0000000..c7008b7 --- /dev/null +++ b/README.md @@ -0,0 +1,83 @@ +# Package Manager 🤖📦 + +[![GitHub license](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) +[![GitHub repo size](https://img.shields.io/github/repo-size/kevinveenbirkenbach/package-manager)](https://github.com/kevinveenbirkenbach/package-manager) + +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`) and optional setup/teardown commands. + +- **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 make sure your `~/.local/bin` is in your system PATH: + +```bash +git clone https://github.com/kevinveenbirkenbach/package-manager.git +cd package-manager +chmod +x main.py +``` + +Then install or update your commands: + +```bash +./main.py install --all +``` + +## Usage 📖 + +Run the script with different commands. For example: + +- **Install all packages:** + ```bash + pkgmgr install --all + ``` +- **Pull updates for a specific repository:** + ```bash + pkgmgr pull pkgmgr + ``` +- **Commit changes with extra Git parameters:** + ```bash + pkgmgr commit pkgmgr -- -m "Your commit message" + ``` +- **List all configured packages:** + ```bash + pkgmgr list + ``` +- **Manage configuration:** + ```bash + pkgmgr config init + pkgmgr config add + pkgmgr config edit + pkgmgr config delete + pkgmgr config ignore --set true + ``` + +## License 📄 + +This project is licensed under the MIT License. + +## Author 👤 + +Kevin Veen-Birkenbach +[https://www.veen.world](https://www.veen.world) + +--- + +**Repository:** [github.com/kevinveenbirkenbach/package-manager](https://github.com/kevinveenbirkenbach/package-manager) + +*Created with AI 🤖 - [View conversation](https://chatgpt.com/share/67c728c4-92d0-800f-8945-003fa9bf27c6)* diff --git a/config/defaults.yaml b/config/defaults.yaml index d244641..e0b0ca1 100644 --- a/config/defaults.yaml +++ b/config/defaults.yaml @@ -3,6 +3,7 @@ repos: - account: kevinveenbirkenbach command: '' description: Package Manager for the Kevin Veen-Birkenbach Scripting Universe + homepage: https://github.com/kevinveenbirkenbach/package-manager provider: github.com replacement: '' repository: package-manager @@ -13,6 +14,7 @@ repos: - account: kevinveenbirkenbach command: '' description: Helps you to manage tax and financial relevant data + homepage: https://github.com/kevinveenbirkenbach/financial-helper provider: github.com replacement: '' repository: financial-helper @@ -26,6 +28,7 @@ repos: repository: directory-content-scanner command: scan.py description: Scans directories to analyze and list file contents. + homepage: https://github.com/kevinveenbirkenbach/directory-content-scanner verified: efcfc585d7a396ff7983196a621256a64728438b - account: kevinveenbirkenbach alias: bsr @@ -33,54 +36,64 @@ repos: repository: bulk-string-replacer command: replace_string.py description: Replaces strings in bulk across multiple files. + homepage: https://github.com/kevinveenbirkenbach/bulk-string-replacer verified: c7bf51941b691eea3cb8536d0f4e18427ba916e8 - account: kevinveenbirkenbach alias: ircli provider: github.com repository: image-resizer-cli description: A command-line tool to resize images. + homepage: https://github.com/kevinveenbirkenbach/image-resizer-cli verified: ee279a127fd1f4a2b9c4a3a9de86b3a0ad8cf8ce - account: kevinveenbirkenbach provider: github.com repository: media-sorting-tools description: Tools to sort and organize media files. + homepage: https://github.com/kevinveenbirkenbach/media-sorting-tools verified: 2cb735f45a15c3cadb8edc948d5f5f03e79fcb1a - account: kevinveenbirkenbach provider: github.com repository: ansible-encryptor description: Encrypts sensitive data for Ansible. + homepage: https://github.com/kevinveenbirkenbach/ansible-encryptor verified: 0053384aa0aa85dcef764a8b74c03a72537d0115 - account: kevinveenbirkenbach alias: lim provider: github.com repository: linux-image-manager description: Manages Linux kernel images. + homepage: https://github.com/kevinveenbirkenbach/linux-image-manager verified: 13454c7e8722b344723dbe6a997102672edce105 - account: kevinveenbirkenbach alias: dfh provider: github.com repository: duplicate-file-handler description: Detects and handles duplicate files. + homepage: https://github.com/kevinveenbirkenbach/duplicate-file-handler verified: 89e15dd023aee82190bacaadc337c282b91f5357 - account: kevinveenbirkenbach provider: github.com repository: create-linux-swapfile description: Creates and configures Linux swap files. + homepage: https://github.com/kevinveenbirkenbach/create-linux-swapfile verified: d68cc2c18ea10f6c494bbd6a425f51d99f30a601 - account: kevinveenbirkenbach alias: spltscrt provider: github.com repository: splitted-secret description: Splits secrets into parts for secure storage. + homepage: https://github.com/kevinveenbirkenbach/splitted-secret verified: 44b2db0cbc03101ef43aff73eef1ab6ed011b9f5 - account: kevinveenbirkenbach alias: dirval provider: github.com repository: directory-validator description: Validates directory structure and contents. + homepage: https://github.com/kevinveenbirkenbach/directory-validator verified: 73a29a092adaf4d513bc23357b7700d690d5a663 - account: kevinveenbirkenbach alias: lukskeymng provider: github.com repository: luks-key-management description: Manages LUKS keys for encrypted disks. + homepage: https://github.com/kevinveenbirkenbach/luks-key-management