package client import ( "atomicgo.dev/cursor" "flag" "git.smsvc.net/pomodoro/ChronoTomato/internal/frontend" "git.smsvc.net/pomodoro/ChronoTomato/internal/helper" "git.smsvc.net/pomodoro/ChronoTomato/internal/websocket" GoTomato "git.smsvc.net/pomodoro/GoTomato/pkg/models" ) func Start() { cursor.Hide() defer cursor.Show() channel := make(chan GoTomato.ServerMessage, 2) parameter_url := flag.String("url", "", "GoTomato Server URL (eg ws://localhost:8080/ws)") parameter_password := flag.String("password", "", "Control password for pomodoro session (optional)") configfile := flag.String("config", "~/.config/ChronoTomato.yml", "path to config file (optional)") flag.Parse() config := helper.ParseConfig(*configfile) url := *parameter_url if url == "" { url = config.URL } if *parameter_password != "" { config.Password = *parameter_password } conn := websocket.Connect(url) go websocket.ProcessServerMessages(conn, channel) frontend.Handler(conn, config, channel) websocket.Disconnect(conn) }