52 lines
1.3 KiB
Go
52 lines
1.3 KiB
Go
package tui
|
|
|
|
import (
|
|
tea "github.com/charmbracelet/bubbletea"
|
|
)
|
|
|
|
func (m model) handleMainMenu() (tea.Model, tea.Cmd) {
|
|
switch m.cursor {
|
|
case 0:
|
|
m.screen = screenNetwork
|
|
m.cursor = 0
|
|
return m, nil
|
|
case 1:
|
|
m.busy = true
|
|
return m, func() tea.Msg {
|
|
services, err := m.app.ListBeeServices()
|
|
return servicesMsg{services: services, err: err}
|
|
}
|
|
case 2:
|
|
m.screen = screenAcceptance
|
|
m.cursor = 0
|
|
return m, nil
|
|
case 3:
|
|
m.busy = true
|
|
return m, func() tea.Msg {
|
|
result, err := m.app.RunAuditNow(m.runtimeMode)
|
|
return resultMsg{title: result.Title, body: result.Body, err: err, back: screenMain}
|
|
}
|
|
case 4:
|
|
m.busy = true
|
|
return m, func() tea.Msg {
|
|
targets, err := m.app.ListRemovableTargets()
|
|
return exportTargetsMsg{targets: targets, err: err}
|
|
}
|
|
case 5:
|
|
m.busy = true
|
|
return m, func() tea.Msg {
|
|
result := m.app.ToolCheckResult([]string{"dmidecode", "smartctl", "nvme", "ipmitool", "lspci", "bee", "nvidia-smi", "dhclient", "lsblk", "mount"})
|
|
return resultMsg{title: result.Title, body: result.Body, back: screenMain}
|
|
}
|
|
case 6:
|
|
m.busy = true
|
|
return m, func() tea.Msg {
|
|
result := m.app.AuditLogTailResult()
|
|
return resultMsg{title: result.Title, body: result.Body, back: screenMain}
|
|
}
|
|
case 7:
|
|
return m, tea.Quit
|
|
}
|
|
return m, nil
|
|
}
|