Skip to main content

CLI tool for discovering and installing Linux rice profiles

Project description

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.

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

riceshare-0.1.1.tar.gz (13.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

riceshare-0.1.1-py3-none-any.whl (13.6 kB view details)

Uploaded Python 3

File details

Details for the file riceshare-0.1.1.tar.gz.

File metadata

  • Download URL: riceshare-0.1.1.tar.gz
  • Upload date:
  • Size: 13.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.1

File hashes

Hashes for riceshare-0.1.1.tar.gz
Algorithm Hash digest
SHA256 20db4f3b7d7a3d405c677047fbb7ff191914854140bea165d744e8c2cb44ca36
MD5 89011b8c29dfa0f7ee921dbaec78be9c
BLAKE2b-256 b9a6698b77186db06db6f426833fbdc3aafb6400a4bc3e376b1b8b995880d851

See more details on using hashes here.

File details

Details for the file riceshare-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: riceshare-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 13.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.1

File hashes

Hashes for riceshare-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 14878146e4a68eb5b1b544ba72092f3ca215d09483bdfefc0945424cb6f71398
MD5 e182015216f6b0f1f3647bf233c89d68
BLAKE2b-256 1e1699adcb9853ad46a6028bdd960b787ffb386d705851536b39e02fe776c77a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page