2.3 KiB
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
make build # menghasilkan ./tia-love
./tia-love # buka TUI
./tia-love version # versi & build info
make test # unit test
Nama binary final: tia-love (nama produk tetap tia).
Test
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:
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.