1package main
2
3import (
4 "log"
5 "smoothie/tui"
6
7 tea "github.com/charmbracelet/bubbletea"
8 "github.com/meowgorithm/babyenv"
9)
10
11type Config struct {
12 Port int `env:"SMOOTHIE_PORT" default:"23231"`
13 KeyPath string `env:"SMOOTHIE_KEY_PATH" default:".ssh/smoothie_server_ed25519"`
14 RepoPath string `env:"SMOOTHIE_REPO_PATH" default:".repos"`
15}
16
17func main() {
18 var cfg Config
19 err := babyenv.Parse(&cfg)
20 if err != nil {
21 log.Fatalln(err)
22 }
23 btm := BubbleTeaMiddleware(tui.SessionHandler, tea.WithAltScreen())
24 gm := GitMiddleware(cfg.RepoPath)
25 s, err := NewServer(cfg.Port, cfg.KeyPath, btm, gm, LoggingMiddleware())
26 if err != nil {
27 log.Fatalln(err)
28 }
29 err = s.Start()
30 if err != nil {
31 log.Fatalln(err)
32 }
33}