Metadata-Version: 2.4
Name: mirava-tui
Version: 0.1.0
Summary: TUI wizard for selecting the best Iran mirrors
Requires-Python: >=3.9
Requires-Dist: httpx>=0.24
Requires-Dist: prompt-toolkit>=3.0
Description-Content-Type: text/markdown

# mirava

TUI wizard to check availability and package presence across Iran mirrors.

## Run

```bash
python -m mirava
```

Or install deps and run:

```bash
pip install -e .
mirava
```

## Build binaries (Nuitka)

Build for your current host:

```bash
scripts/build_nuitka.sh --output-filename=mirava
```

Cross-platform/arch strategy:

- Nuitka builds are effectively native-target builds.
- Use a build matrix with native runners/containers per target.

Included in this repo:

- `.github/workflows/build-binaries.yml`
- Targets:
  - Linux `x64`
  - Linux `arm64`
  - Linux `x86` (via `i386/ubuntu` Docker job)
  - Windows `x64`
  - Windows `x86`
  - macOS/Darwin `x64` (Intel)
  - macOS/Darwin `arm64` (Apple Silicon)

Run locally for Linux `x86` on an `x64` host using Docker:

```bash
docker run --rm -v "$PWD:/work" -w /work i386/ubuntu:24.04 bash -lc '
  set -euo pipefail
  apt-get update
  DEBIAN_FRONTEND=noninteractive apt-get install -y \
    python3 python3-pip gcc g++ patchelf ccache
  python3 -m pip install --upgrade pip
  python3 -m pip install nuitka httpx prompt-toolkit zstandard patchelf
  NUITKA_CCACHE_BINARY=/usr/bin/ccache CC=gcc \
    python3 -m nuitka \
      --onefile \
      --static-libpython=no \
      --output-dir=dist \
      --follow-imports \
      --include-package=mirava \
      --include-package=httpx \
      --include-package=prompt_toolkit \
      --include-data-file=mirava_full_json.json=mirava_full_json.json \
      --output-filename=mirava-linux-x86 \
      mirava/cli.py
'
```
