RiceShare CLI
Discover and install Linux rice profiles with ease.
RiceShare is a production-grade CLI tool for discovering, installing, and managing Linux rice profiles (desktop environment configurations). Built with modern Python tooling, it provides a clean interface for browsing available profiles and safely installing them with automatic backups.
Features
- Search profiles: Browse available rice profiles from the community index
- Profile info: View detailed information about any profile
- Safe installation: Install profiles with automatic backups and dry-run support
- Rollback support: Easily restore previous configurations from backups
- Distro detection: Automatically selects the right package manager and packages for your system
- Production-ready: Full type hints, comprehensive tests, and CI/CD workflow
Installation
Install from source:
git clone https://github.com/AxonInnova/RiceShare.git
cd RiceShare
pip install -e .
Or install from PyPI (recomended):
pip install riceshare
Usage
Search for profiles
riceshare search
Displays all available profiles in a formatted table with ID, name, author, description, and supported distributions.
View profile details
riceshare info <profile-id>
Shows detailed information about a specific profile including description, author, supported distributions, and preview URL (if available).
Install a profile
riceshare install <profile-id> [--dry-run] [--yes]
Installs a profile:
--dry-run: Preview changes without applying them--yes: Skip confirmation prompts
The tool automatically:
- Detects your Linux distribution
- Selects appropriate packages
- Backs up affected files
- Displays package installation commands for you to run manually
- Creates a timestamped backup for easy rollback
Restore from backup
riceshare rollback [backup-id]
Restores files from a previous backup. Run without a backup ID to list all available backups.
Export profile as install script
riceshare export <profile-id> --output <filename>
Generates a standalone POSIX shell script for installing a profile on another machine:
riceshare export neon-i3 --output neon-i3-install.sh
Review the generated script:
cat neon-i3-install.sh
Run it to install:
sh ./neon-i3-install.sh
The script includes:
- Automatic backup of existing files to
~/.riceshare/backups/ - Package manager commands for your distro (apt/pacman/dnf)
- File placement logic with atomic writes
- Error handling with rollback info
Use --dry-run to preview without writing:
riceshare export neon-i3 --output neon-i3-install.sh --dry-run
Development
Setup
# Create virtual environment
python -m venv .venv
source .venv/bin/activate
# Install in editable mode with dev dependencies
pip install -e ".[dev]"
Testing
pytest -q
pytest --cov=riceshare # with coverage
Code quality
ruff check riceshare tests # linting
black riceshare tests # formatting
mypy riceshare # type checking
Build
python -m build
Project Structure
riceshare/— Main packagecli.py— Typer CLI applicationgithub.py— GitHub integration for fetching profilesinstaller.py— Installation logic and YAML validationbackup.py— Backup creation and rollback functionalitypackages.py— Package manager integrationconfig.py— Configuration and constantsutils.py— HTTP, file, and error utilities
tests/— Unit and integration tests.github/workflows/ci.yaml— GitHub Actions CI pipeline
License
MIT License - see LICENSE for details.
Contributing
See CONTRIBUTING.md for guidelines.
Changelog
See CHANGELOG.md for release notes.
Metadata
Release files for riceshare 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| riceshare-0.1.2.tar.gz | 16.8 kB | Without provenance | Details for riceshare-0.1.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| riceshare-0.1.2-py3-none-any.whl | Python 3 | none | any | Details for riceshare-0.1.2-py3-none-any.whl |
Total release size: 33.0 kB
Security for riceshare 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.