Commit a99372b8 authored by liming6's avatar liming6
Browse files

fix hytop

1. 预先初始化DCU信息,初始化错误时直接退出
2. 修复pstree标头的string.Repeat数量可能为负的错误
parent 71b1ba0d
...@@ -42,9 +42,14 @@ func main() { ...@@ -42,9 +42,14 @@ func main() {
log.Fatalf("error init data backend: %v", err) log.Fatalf("error init data backend: %v", err)
} }
model := tui.NewModelMain(w, h) model := tui.NewModelMain(w, h)
if _, err := tea.NewProgram(&model, tea.WithAltScreen()).Run(); err != nil { err = model.Prepare()
backend.Shutdown() if err == nil {
log.Fatalf("error create program; %v", err) if _, err := tea.NewProgram(&model, tea.WithAltScreen()).Run(); err != nil {
backend.Shutdown()
log.Fatalf("error create program; %v", err)
}
} else {
log.Println("init model error, dcu may be unhealthy")
} }
backend.Shutdown() backend.Shutdown()
os.Exit(0) os.Exit(0)
......
...@@ -133,9 +133,9 @@ func NewModelMain(width, height int) ModelMain { ...@@ -133,9 +133,9 @@ func NewModelMain(width, height int) ModelMain {
result.dialog = NewDialog(nil) result.dialog = NewDialog(nil)
result.pstree = NewModelPsTree(width, height) result.pstree = NewModelPsTree(width, height)
result.actionMsg = &ActionMsg{ result.actionMsg = &ActionMsg{
HelpView: false, HelpView: false,
TargetDCUIndex: -1, TargetDCUIndex: -1,
VM: VMMain, VM: VMMain,
} }
result.processEnv = nil result.processEnv = nil
return result return result
...@@ -153,12 +153,18 @@ func sendMsgCmd(modelMsg *ModelMsg) tea.Cmd { ...@@ -153,12 +153,18 @@ func sendMsgCmd(modelMsg *ModelMsg) tea.Cmd {
} }
} }
// Init 初始化信息 // Prepare 准备数据
func (m *ModelMain) Init() tea.Cmd { func (m *ModelMain) Prepare() error {
modelMsg := ModelMsg{} modelMsg := ModelMsg{}
if err := initModelInfo(&modelMsg); err != nil { if err := initModelInfo(&modelMsg); err != nil {
return tea.Quit return err
} }
m.modelMsg = &modelMsg
return nil
}
// Init 初始化信息
func (m *ModelMain) Init() tea.Cmd {
cmds := make([]tea.Cmd, 0) cmds := make([]tea.Cmd, 0)
if c := m.Header.Init(); c != nil { if c := m.Header.Init(); c != nil {
cmds = append(cmds, c) cmds = append(cmds, c)
...@@ -181,9 +187,9 @@ func (m *ModelMain) Init() tea.Cmd { ...@@ -181,9 +187,9 @@ func (m *ModelMain) Init() tea.Cmd {
if c := m.processEnv.Init(); c != nil { if c := m.processEnv.Init(); c != nil {
cmds = append(cmds, c) cmds = append(cmds, c)
} }
m.modelMsg = &modelMsg
// 将调用初始化方法 // 将调用初始化方法
cmds = append(cmds, tickCmd(), sendMsgCmd(&modelMsg)) cmds = append(cmds, tickCmd(), sendMsgCmd(m.modelMsg))
return tea.Batch(cmds...) return tea.Batch(cmds...)
} }
......
...@@ -67,7 +67,7 @@ func (m *ModelPsTree) Init() tea.Cmd { ...@@ -67,7 +67,7 @@ func (m *ModelPsTree) Init() tea.Cmd {
h2 := sb.String() h2 := sb.String()
sb.Reset() sb.Reset()
w := m.width - lipgloss.Width(h1) - lipgloss.Width(h2) w := m.width - lipgloss.Width(h1) - lipgloss.Width(h2)
h := ModelPsTreeStyle.SetString(strings.Repeat(" ", w)).String() h := ModelPsTreeStyle.SetString(strings.Repeat(" ", max(0, w))).String()
m.header[0] = h1 + h + h2 m.header[0] = h1 + h + h2
h1 = ModelPsTreeStyleL.SetString(ModelPsTreeHeader).String() h1 = ModelPsTreeStyleL.SetString(ModelPsTreeHeader).String()
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment