Initial project skeleton (M0)

Add SPECS.md, JSON config loader with env overrides and validation,
and an empty tview shell with tabs and status bar.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-20 17:38:15 +02:00
co-authored by Claude Sonnet 5.5
commit 9f05523c02
10 changed files with 693 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
// Command arr-tui is a terminal UI for Radarr, Sonarr and SABnzbd.
package main
import (
"flag"
"fmt"
"os"
"git.stinnesbeck.com/nils/arr-tui/internal/config"
"git.stinnesbeck.com/nils/arr-tui/internal/ui"
)
func main() {
if err := run(); err != nil {
fmt.Fprintln(os.Stderr, "arr-tui:", err)
os.Exit(1)
}
}
func run() error {
path := flag.String("config", "", "path to config.json (default: $XDG_CONFIG_HOME/arr-tui/config.json)")
flag.Parse()
if *path == "" {
p, err := config.DefaultPath()
if err != nil {
return err
}
*path = p
}
_, warnings, err := config.Load(*path)
if err != nil {
return err
}
for _, w := range warnings {
fmt.Fprintln(os.Stderr, "warning:", w)
}
return ui.New().Run()
}