Skip to main content

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 package
    • cli.py — Typer CLI application
    • github.py — GitHub integration for fetching profiles
    • installer.py — Installation logic and YAML validation
    • backup.py — Backup creation and rollback functionality
    • packages.py — Package manager integration
    • config.py — Configuration and constants
    • utils.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)

Source distribution for riceshare 0.1.2
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)

Table of built distributions (wheels) for riceshare 0.1.2
File Interpreter ABI Platform Actions
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

Release files / riceshare-0.1.2.tar.gz

Download URL riceshare-0.1.2.tar.gz
Size 16.8 kB
Tags Source
SHA-256 checksum
How to use checksums
4f9b95a95c77ed7bb9e9a4a67eb27d352a3847b4164fc1e9e3f296a3f79d1b32
BLAKE2b-256 checksum
How to use checksums
1d1a25075154ca10c544258bf97072da40d71182eb7ccdbc557df13d550ed007
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.1

Release files / riceshare-0.1.2-py3-none-any.whl

Download URL riceshare-0.1.2-py3-none-any.whl
Size 16.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8d4a435b726921faa23ec2066bcf8aec5966a0b40a8261f8b83134b6595b3f6d
BLAKE2b-256 checksum
How to use checksums
803b3348d4a48eeb958a51c739a7103551a9133da5a6807c4752c6b0d947d448
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.1

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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page