main.go

 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}