package tui import ( "fmt" "wireguard-ui/command" "wireguard-ui/http/vo" ) type ServerComponent struct { LoginUser *vo.User Menu []string } func NewServerComponent(loginUser *vo.User) *ServerComponent { return &ServerComponent{ LoginUser: loginUser, Menu: []string{"[1] 启动服务", "[2] 关闭服务", "[3] 重启服务", "[q] 返回上一级菜单"}, } } // Menus // @description: 服务端菜单 // @receiver s func (s *ServerComponent) Menus() { fmt.Println("") for _, r := range s.Menu { fmt.Println(" -> " + r) } chooseMenu := readInput("\n请选择: ") switch chooseMenu { case "1": s.Start() case "2": s.Stop() case "3": s.Restart() case "q": return } } // Start // @description: 启动服务 // @receiver s func (s *ServerComponent) Start() { command.StartWireguard("") } // Stop // @description: 停止服务 // @receiver s func (s *ServerComponent) Stop() { command.StopWireguard("") } // Restart // @description: 重启服务 // @receiver s func (s *ServerComponent) Restart() { command.RestartWireguard(false, "") }