Skip to main content

CLI tool for discovering and installing Linux rice profiles

Project description

Generated by Copilot per user prompt — review before committing.

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 (coming soon):

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.0.tar.gz (13.3 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.0-py3-none-any.whl (13.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: riceshare-0.1.0.tar.gz
  • Upload date:
  • Size: 13.3 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.0.tar.gz
Algorithm Hash digest
SHA256 6cb9a41af0e9894c6af3a17153a33cb2edab5f9888efeb4769dbf27a432df572
MD5 34b81e5b2c1381f0ed73a004ec351036
BLAKE2b-256 df8084949cc5871b4c0c5e6019c0ebe8234a3227e1101c6da92d2dbd8257560f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: riceshare-0.1.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e94118e9fcd45f303e8ccfb57b708adc6346112bb555285ed6180bdc8f30c14c
MD5 be1c90f1b259599052a15d99994e2bd5
BLAKE2b-256 068f69b52b239c86a2eb5c6b663c811fd4b1a66b405707d28fea4ced7665772f

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