package main import ( "flag" "fmt" "os" "git.ryuvia.com/niklas/terdut-tui/internal/api" "git.ryuvia.com/niklas/terdut-tui/internal/config" "git.ryuvia.com/niklas/terdut-tui/internal/theme" "git.ryuvia.com/niklas/terdut-tui/internal/tui" "git.ryuvia.com/niklas/terdut-tui/internal/updater" tea "github.com/charmbracelet/bubbletea" ) var version = "dev" func main() { versionFlag := flag.Bool("version", false, "print version and exit") updateFlag := flag.Bool("self-update", false, "update terdut-tui to the latest release") flag.Parse() if *versionFlag { fmt.Println(version) os.Exit(0) } if *updateFlag { if err := updater.Run(version); err != nil { fmt.Fprintln(os.Stderr, "update:", err) os.Exit(1) } os.Exit(0) } cfg, err := config.Load() if err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) } th, err := theme.Load(cfg.Theme) if err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) } client := api.NewClient(cfg.ServerURL, cfg.APIKey) model := tui.NewModel(client, cfg.ServerURL, cfg.RefreshInterval, th) p := tea.NewProgram(model, tea.WithAltScreen()) if _, err := p.Run(); err != nil { fmt.Fprintln(os.Stderr, "error:", err) os.Exit(1) } }