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	KeyPath string `env:"SMOOTHIE_KEY_PATH" default:".ssh/smoothie_server_ed25519"`
13	Port    int    `env:"SMOOTHIE_PORT" default:"23231"`
14}
15
16func main() {
17	var cfg Config
18	err := babyenv.Parse(&cfg)
19	if err != nil {
20		log.Fatalln(err)
21	}
22	btm := BubbleTeaMiddleware(tui.SessionHandler, tea.WithAltScreen())
23	s, err := NewServer(cfg.Port, cfg.KeyPath, LoggingMiddleware(), btm)
24	if err != nil {
25		log.Fatalln(err)
26	}
27	err = s.Start()
28	if err != nil {
29		log.Fatalln(err)
30	}
31}