48 lines
1.5 KiB
Go
48 lines
1.5 KiB
Go
package tui
|
|
|
|
import (
|
|
"bee/audit/internal/platform"
|
|
|
|
tea "github.com/charmbracelet/bubbletea"
|
|
)
|
|
|
|
func (m model) handleServicesMenu() (tea.Model, tea.Cmd) {
|
|
if len(m.services) == 0 {
|
|
return m, resultCmd("Services", "No bee-* services found.", nil, screenMain)
|
|
}
|
|
m.selectedService = m.services[m.cursor]
|
|
m.screen = screenServiceAction
|
|
m.cursor = 0
|
|
return m, nil
|
|
}
|
|
|
|
func (m model) handleServiceActionMenu() (tea.Model, tea.Cmd) {
|
|
action := m.serviceMenu[m.cursor]
|
|
if action == "back" {
|
|
m.screen = screenServices
|
|
m.cursor = 0
|
|
return m, nil
|
|
}
|
|
|
|
m.busy = true
|
|
m.busyTitle = "service: " + m.selectedService
|
|
return m, func() tea.Msg {
|
|
switch action {
|
|
case "Status":
|
|
result, err := m.app.ServiceStatusResult(m.selectedService)
|
|
return resultMsg{title: result.Title, body: result.Body, err: err, back: screenServiceAction}
|
|
case "Restart":
|
|
result, err := m.app.ServiceActionResult(m.selectedService, platform.ServiceRestart)
|
|
return resultMsg{title: result.Title, body: result.Body, err: err, back: screenServiceAction}
|
|
case "Start":
|
|
result, err := m.app.ServiceActionResult(m.selectedService, platform.ServiceStart)
|
|
return resultMsg{title: result.Title, body: result.Body, err: err, back: screenServiceAction}
|
|
case "Stop":
|
|
result, err := m.app.ServiceActionResult(m.selectedService, platform.ServiceStop)
|
|
return resultMsg{title: result.Title, body: result.Body, err: err, back: screenServiceAction}
|
|
default:
|
|
return resultMsg{title: "Service", body: "Unknown action.", back: screenServiceAction}
|
|
}
|
|
}
|
|
}
|