72 lines
2.4 KiB
Markdown
72 lines
2.4 KiB
Markdown
# tia — Terminal Is A My Way
|
||
|
||
> "Satu binary untuk semua kebutuhan Docker kamu." · Tagline: **Just Work**
|
||
|
||
TUI modern (Go + Charm v2) + CLI pendamping untuk manajemen Docker:
|
||
stack & container, konverter `docker run` → compose, multi-host, mouse-first,
|
||
audio feedback, animasi ASCII.
|
||
|
||
Status: **Phase 0 — fondasi** (lihat roadmap di `docs/PRD.md` §8).
|
||
|
||
## Build & jalankan
|
||
|
||
```bash
|
||
make build # menghasilkan ./tia-love
|
||
./tia-love # buka TUI
|
||
./tia-love doctor # periksa kesehatan sistem (docker/audio/stack)
|
||
./tia-love version # versi & build info
|
||
make test # unit test + e2e
|
||
```
|
||
|
||
Nama binary final: **`tia-love`** (nama produk tetap **tia**).
|
||
|
||
## Test
|
||
|
||
```bash
|
||
go test ./... # unit test + e2e
|
||
go test ./e2e/ -v # E2E saja (verbose)
|
||
```
|
||
|
||
E2E (`e2e/`) membangun binary asli, menjalankannya di dalam pty 120×40, dan
|
||
memverifikasi **isi layar** lewat emulator terminal mini (`e2e/screen_test.go`):
|
||
boot TUI → keluar bersih (exit 0), toast (`t`), reduced-motion (`a`),
|
||
klik mouse + navigasi (`j`/`k`), dan exit code error (2) untuk perintah asing.
|
||
Asersi berbasis layar (bukan byte mentah) agar tahan terhadap diff-renderer.
|
||
|
||
## Instalasi
|
||
|
||
Setelah rilis pertama tersedia:
|
||
|
||
```bash
|
||
curl -fsSL https://gitea.oxpoe.qzz.io/oxpoe/tia-love/raw/branch/main/install.sh | sh
|
||
```
|
||
|
||
Skrip mendeteksi OS/arch (Linux/macOS · amd64/arm64), memverifikasi SHA256, dan memasang
|
||
ke `~/.local/bin/tia-love` tanpa sudo. Alternatif: unduh manual dari halaman Releases di
|
||
Gitea (https://gitea.oxpoe.qzz.io/oxpoe/tia-love).
|
||
|
||
Rilis dibangun oleh GoReleaser — dry run lokal: `goreleaser release --snapshot --clean`.
|
||
|
||
## Struktur repo
|
||
|
||
```
|
||
cmd/tia-love/ entry point — router TUI default vs CLI companion
|
||
internal/app/ root Bubble Tea model
|
||
internal/ (menyusul) docker, stack, config, ui, i18n, host, cli, audio
|
||
docs/PRD.md product requirements
|
||
docs/rea/ laporan analisis proyek referensi (playbook + modul)
|
||
reference/ repo referensi untuk REA — git-ignored, jangan di-commit
|
||
```
|
||
|
||
## Prinsip
|
||
|
||
- **Satu binary** (`CGO_ENABLED=0`), tanpa dependency runtime selain Docker.
|
||
- **Core tanpa UI**: logika dibagi TUI & CLI → hasil identik (F-028).
|
||
- **Mouse & keyboard setara** sejak hari pertama (F-022).
|
||
- **i18n dari awal** — Indonesia default, English fallback (F-023).
|
||
|
||
## Lisensi
|
||
|
||
MIT — lihat `LICENSE`. Atribusi pihak ketiga: `THIRD_PARTY_NOTICES.md`,
|
||
register aset: `docs/ASSETS.md`.
|