From ef681a3424cd05e46a840691db97a7c9c0a00da1 Mon Sep 17 00:00:00 2001 From: Shivram Date: Tue, 23 Sep 2025 22:26:41 +0530 Subject: [PATCH 1/2] Enhanced README with visual improvements and better structure --- README.md | 120 +++++++++++++++++++++++++++++------------------------- 1 file changed, 65 insertions(+), 55 deletions(-) diff --git a/README.md b/README.md index aa08b8d..9bea00f 100644 --- a/README.md +++ b/README.md @@ -1,66 +1,79 @@ -# archpkg-helper +# πŸš€ archpkg-helper -A command-line utility for simplifying package management on Linux distributions. This project aims to make installing, removing, and searching for packages easier, and welcomes contributions from the open source community. +[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://github.com/AdmGenSameer/archpkg-helper/blob/main/LICENSE) +[![Python](https://img.shields.io/badge/Python-3.6%2B-blue)](https://www.python.org/) +[![Issues](https://img.shields.io/github/issues/AdmGenSameer/archpkg-helper)](https://github.com/AdmGenSameer/archpkg-helper/issues) +[![Forks](https://img.shields.io/github/forks/AdmGenSameer/archpkg-helper?style=social)](https://github.com/AdmGenSameer/archpkg-helper/network/members) +[![Stars](https://img.shields.io/github/stars/AdmGenSameer/archpkg-helper?style=social)](https://github.com/AdmGenSameer/archpkg-helper/stargazers) -## Table of Contents +A **command-line utility** for simplifying package management on Linux distributions. +This project aims to make installing, removing, and searching for packages easier, +and welcomes contributions from the open source community. ✨ -- [About](#about) -- [Features](#features) -- [Installation](#installation) -- [Usage](#usage) -- [File Structure](#file-structure) -- [Contributing](#contributing) -- [License](#license) +--- + +## πŸ“– Table of Contents + +- [ℹ️ About](#ℹ️-about) +- [✨ Features](#-features) +- [βš™οΈ Installation](#️-installation) +- [πŸ’» Usage](#-usage) +- [πŸ“‚ File Structure](#-file-structure) +- [🀝 Contributing](#-contributing) +- [πŸ“œ License](#-license) + +--- -## About +## ℹ️ About -archpkg-helper is designed for users who want an easier way to manage packages on Linux systems. While originally inspired by Arch Linux, this tool aims to work on any Linux distribution that supports Python and common package managers. Whether you’re new to Linux or a seasoned user, this tool offers simple commands for common package operations. +**archpkg-helper** is designed for users who want an easier way to manage packages on Linux systems. +While originally inspired by Arch Linux, this tool aims to work on **any Linux distribution** that supports Python and common package managers. -## Features +πŸ‘‰ Whether you’re **new to Linux** or a **seasoned user**, this tool offers simple commands for common package operations. -- Install, remove, and search for packages with simple commands -- Support for dependencies and AUR packages (coming soon) -- Easy-to-read output and error messages -- Not bound to Arch Linuxβ€”can be used on other Linux distros with compatible package managers +--- + +## ✨ Features -## Installation +βœ… Install, remove, and search for packages with simple commands +βœ… Support for dependencies and AUR packages *(coming soon)* +βœ… Easy-to-read output and error messages +βœ… Cross-distro support – **not bound to Arch Linux** -You can install archpkg-helper on any Linux distro. Here are the steps: +--- -### Prerequisites +## βš™οΈ Installation -- Python 3.6 or newer +You can install **archpkg-helper** on any Linux distro. + +### πŸ“‹ Prerequisites +- Python **3.6+** - `git` installed -### Steps +### πŸ›  Steps ```sh git clone https://github.com/AdmGenSameer/archpkg-helper.git cd archpkg-helper pip install . -``` - -Or for development: +For development mode: -```sh +sh +Copy code pip install -e . -``` - -## Usage - -After installing, use the following commands: +πŸ’» Usage +After installation, use the following commands: -```sh +sh +Copy code archpkg-helper install archpkg-helper remove archpkg-helper search -``` - -Replace `` with the package you want to manage. +πŸ”Ή Replace with the package you want to manage. -## File Structure - -``` +πŸ“‚ File Structure +bash +Copy code archpkg-helper/ β”‚ β”œβ”€β”€ archpkg_helper/ # Main Python package @@ -77,28 +90,25 @@ archpkg-helper/ β”œβ”€β”€ LICENSE # Project license (Apache 2.0) β”œβ”€β”€ README.md # This file └── CONTRIBUTING.md # Contribution guidelines -``` - -## Contributing +🀝 Contributing +We welcome contributions! πŸ™Œ +Please read our CONTRIBUTING.md for guidelines. -We welcome contributions! Please read our [`CONTRIBUTING.md`](./CONTRIBUTING.md) for guidelines. +πŸ“ How to Contribute +Fork the repository -### How to Contribute +Create a branch: git checkout -b feature-branch -1. Fork the repository. -2. Create a branch: `git checkout -b feature-branch` -3. Make your changes and commit: `git commit -m "Describe your changes"` -4. Push to your fork: `git push origin feature-branch` -5. Open a Pull Request. +Make your changes and commit: git commit -m "Describe your changes" -#### Issues +Push to your fork: git push origin feature-branch -Report bugs or request features [here](https://github.com/AdmGenSameer/archpkg-helper/issues). +Open a Pull Request -## License +🐞 Report bugs or request features here. -This project is licensed under the [Apache License 2.0](./LICENSE). - ---- +πŸ“œ License +This project is licensed under the Apache License 2.0. -*Happy hacking!* \ No newline at end of file +⭐️ If you like this project, consider giving it a star on GitHub! +Happy hacking! πŸ§πŸ’» \ No newline at end of file From 50d3d083eb07b89a711c0809e68e5e9551d71320 Mon Sep 17 00:00:00 2001 From: Shivram Date: Tue, 23 Sep 2025 22:56:05 +0530 Subject: [PATCH 2/2] Enhanced README --- README.md | 239 ++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 168 insertions(+), 71 deletions(-) diff --git a/README.md b/README.md index 9bea00f..804fe90 100644 --- a/README.md +++ b/README.md @@ -1,114 +1,211 @@ -# πŸš€ archpkg-helper +# archpkg-helper 🧰 +*A universal package helper for Linux distributions* -[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://github.com/AdmGenSameer/archpkg-helper/blob/main/LICENSE) -[![Python](https://img.shields.io/badge/Python-3.6%2B-blue)](https://www.python.org/) -[![Issues](https://img.shields.io/github/issues/AdmGenSameer/archpkg-helper)](https://github.com/AdmGenSameer/archpkg-helper/issues) -[![Forks](https://img.shields.io/github/forks/AdmGenSameer/archpkg-helper?style=social)](https://github.com/AdmGenSameer/archpkg-helper/network/members) -[![Stars](https://img.shields.io/github/stars/AdmGenSameer/archpkg-helper?style=social)](https://github.com/AdmGenSameer/archpkg-helper/stargazers) +--- + +**archpkg-helper** is a cross-distro command-line utility that helps you **search for packages** and **generate install/remove commands** for native Linux package managers such as: -A **command-line utility** for simplifying package management on Linux distributions. -This project aims to make installing, removing, and searching for packages easier, -and welcomes contributions from the open source community. ✨ +- `pacman` (Arch) +- `AUR` +- `apt` (Debian/Ubuntu) +- `dnf` (Fedora) +- `flatpak` +- `snap` + +It aims to simplify software discovery and installation, regardless of which Linux distribution you use. --- -## πŸ“– Table of Contents +## πŸ“š Table of Contents -- [ℹ️ About](#ℹ️-about) -- [✨ Features](#-features) -- [βš™οΈ Installation](#️-installation) -- [πŸ’» Usage](#-usage) -- [πŸ“‚ File Structure](#-file-structure) -- [🀝 Contributing](#-contributing) -- [πŸ“œ License](#-license) +- [About](#about) +- [Features](#features) +- [Quick Start (install.sh)](#quick-start-installsh) +- [Installation (Recommended: pipx)](#installation-recommended-pipx) +- [Alternative Installation (pip)](#alternative-installation-pip) +- [Usage](#usage) +- [File Structure](#file-structure) +- [Contributing](#contributing) +- [License](#license) --- -## ℹ️ About +## πŸ” About + +**archpkg-helper** is designed to work across Linux distributions. While originally inspired by Arch Linux, it automatically detects your system and generates the appropriate commands for the package manager available. -**archpkg-helper** is designed for users who want an easier way to manage packages on Linux systems. -While originally inspired by Arch Linux, this tool aims to work on **any Linux distribution** that supports Python and common package managers. +It’s suitable for: -πŸ‘‰ Whether you’re **new to Linux** or a **seasoned user**, this tool offers simple commands for common package operations. +- πŸ§‘β€πŸ’» Newcomers who aren’t familiar with Linux package managers +- πŸ’‘ Developers who work across multiple distros +- 🧠 Experienced users looking for a more unified workflow --- ## ✨ Features -βœ… Install, remove, and search for packages with simple commands -βœ… Support for dependencies and AUR packages *(coming soon)* -βœ… Easy-to-read output and error messages -βœ… Cross-distro support – **not bound to Arch Linux** +βœ… Search for packages and generate install commands for: + +- `pacman` (Arch) +- `AUR` (via AUR helpers) +- `apt` (Debian/Ubuntu) +- `dnf` (Fedora) +- `flatpak` +- `snap` + +βœ… Cross-distro support (not limited to Arch) +βœ… Clear, readable output and helpful error messages +βœ… One-command setup via `install.sh` --- -## βš™οΈ Installation +## ⚑ Quick Start (install.sh) + +Install `archpkg-helper` using the one-line installer script: -You can install **archpkg-helper** on any Linux distro. +### From a cloned repository -### πŸ“‹ Prerequisites -- Python **3.6+** -- `git` installed +```bash +git clone https://github.com/AdmGenSameer/archpkg-helper.git +cd archpkg-helper +bash install.sh +Or run directly from the web +bash +Copy code +curl -fsSL https://raw.githubusercontent.com/AdmGenSameer/archpkg-helper/main/install.sh | bash +# or +wget -qO- https://raw.githubusercontent.com/AdmGenSameer/archpkg-helper/main/install.sh | bash +Notes: -### πŸ›  Steps +The installer ensures that Python, pip, and pipx are available. -```sh +You may be prompted for sudo to install missing dependencies. + +πŸ“¦ Installation (Recommended: pipx) +Modern Linux distros often protect system Python (via PEP 668), which makes pipx the preferred method for installing CLI tools. + +πŸ› οΈ Step 1: Install pipx +
πŸ“¦ Arch Linux +bash +Copy code +sudo pacman -S pipx +pipx ensurepath +
πŸ“¦ Debian / Ubuntu +bash +Copy code +sudo apt update +sudo apt install pipx +pipx ensurepath +
πŸ“¦ Fedora +bash +Copy code +sudo dnf install pipx +pipx ensurepath +
+🧰 Step 2: Install archpkg-helper +From GitHub: + +bash +Copy code +pipx install git+https://github.com/AdmGenSameer/archpkg-helper.git +From a local clone: + +bash +Copy code git clone https://github.com/AdmGenSameer/archpkg-helper.git cd archpkg-helper -pip install . -For development mode: +pipx install . +πŸ”„ To upgrade later: +bash +Copy code +pipx upgrade archpkg-helper +πŸ“Œ After running pipx ensurepath, ensure your shell has ~/.local/bin in your PATH. -sh +🐍 Alternative Installation (pip) +Use this only if pipx is not available. Install the tool in user scope to avoid system conflicts: + +From a local clone: +bash +Copy code +git clone https://github.com/AdmGenSameer/archpkg-helper.git +cd archpkg-helper +python3 -m pip install --user . +Or directly from GitHub: +bash +Copy code +python3 -m pip install --user git+https://github.com/AdmGenSameer/archpkg-helper.git +⚠️ If your system enforces PEP 668 protections, you might see errors. To override: + +bash +Copy code +python3 -m pip install --break-system-packages . +However, using pipx is strongly recommended instead of bypassing system protections. + +πŸš€ Usage +After installation, the CLI will be available as: + +bash Copy code -pip install -e . -πŸ’» Usage -After installation, use the following commands: +archpkg +Common examples: +bash +Copy code +# πŸ” Search for a package +archpkg search + +# πŸ“¦ Get install command(s) +archpkg install + +# ❌ Get uninstall command(s) +archpkg remove +You can also run: -sh +bash Copy code -archpkg-helper install -archpkg-helper remove -archpkg-helper search -πŸ”Ή Replace with the package you want to manage. +archpkg --help +archpkg --version +Replace with the software you want (e.g. vlc, neofetch, etc.). + +πŸ“ File Structure +Project layout overview: -πŸ“‚ File Structure bash Copy code archpkg-helper/ -β”‚ -β”œβ”€β”€ archpkg_helper/ # Main Python package -β”‚ β”œβ”€β”€ __init__.py -β”‚ β”œβ”€β”€ cli.py # Command-line interface implementation -β”‚ β”œβ”€β”€ core.py # Core logic for package management -β”‚ └── utils.py # Utility functions -β”‚ -β”œβ”€β”€ tests/ # Unit tests -β”‚ β”œβ”€β”€ test_cli.py -β”‚ └── test_core.py -β”‚ -β”œβ”€β”€ setup.py # Python packaging configuration -β”œβ”€β”€ LICENSE # Project license (Apache 2.0) -β”œβ”€β”€ README.md # This file -└── CONTRIBUTING.md # Contribution guidelines +β”œβ”€β”€ archpkg/ # Core Python package code (CLI and logic) +β”œβ”€β”€ install.sh # One-command installer script (uses pipx) +β”œβ”€β”€ pyproject.toml # Build/metadata configuration +β”œβ”€β”€ setup.py # Packaging configuration (entry points, deps) +β”œβ”€β”€ LICENSE # Project license (Apache 2.0) +β”œβ”€β”€ README.md # Project documentation (this file) +β”œβ”€β”€ build/ # Build artifacts (may appear after builds) +β”œβ”€β”€ __pycache__/ # Python bytecode cache (auto-generated) +β”œβ”€β”€ archpkg_helper.egg-info/ # Packaging metadata (auto-generated) +└── archpy.egg-info/ # Packaging metadata (auto-generated) +πŸ“ Some build folders appear only after running packaging/install commands. + 🀝 Contributing -We welcome contributions! πŸ™Œ -Please read our CONTRIBUTING.md for guidelines. +We welcome contributions from everyone! To contribute: -πŸ“ How to Contribute Fork the repository -Create a branch: git checkout -b feature-branch +Create a branch -Make your changes and commit: git commit -m "Describe your changes" +bash +Copy code +git checkout -b feature/my-feature +Make your changes -Push to your fork: git push origin feature-branch +Commit with a clear message -Open a Pull Request +bash +Copy code +git commit -m "Add: my new feature" +Push to your fork -🐞 Report bugs or request features here. +Open a Pull Request -πŸ“œ License -This project is licensed under the Apache License 2.0. +You can also open issues for bugs or feature suggestions. -⭐️ If you like this project, consider giving it a star on GitHub! -Happy hacking! πŸ§πŸ’» \ No newline at end of file +πŸ“„ License +This project is licensed under the Apache License 2.0. \ No newline at end of file