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() {
log.Fatalf("error init data backend: %v", err)
}
model := tui.NewModelMain(w, h)
if _, err := tea.NewProgram(&model, tea.WithAltScreen()).Run(); err != nil {
backend.Shutdown()
log.Fatalf("error create program; %v", err)
err = model.Prepare()
if err == nil {
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()
os.Exit(0)
......
......@@ -133,9 +133,9 @@ func NewModelMain(width, height int) ModelMain {
result.dialog = NewDialog(nil)
result.pstree = NewModelPsTree(width, height)
result.actionMsg = &ActionMsg{
HelpView: false,
HelpView: false,
TargetDCUIndex: -1,
VM: VMMain,
VM: VMMain,
}
result.processEnv = nil
return result
......@@ -153,12 +153,18 @@ func sendMsgCmd(modelMsg *ModelMsg) tea.Cmd {
}
}
// Init 初始化信息
func (m *ModelMain) Init() tea.Cmd {
// Prepare 准备数据
func (m *ModelMain) Prepare() error {
modelMsg := ModelMsg{}
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)
if c := m.Header.Init(); c != nil {
cmds = append(cmds, c)
......@@ -181,9 +187,9 @@ func (m *ModelMain) Init() tea.Cmd {
if c := m.processEnv.Init(); c != nil {
cmds = append(cmds, c)
}
m.modelMsg = &modelMsg
// 将调用初始化方法
cmds = append(cmds, tickCmd(), sendMsgCmd(&modelMsg))
cmds = append(cmds, tickCmd(), sendMsgCmd(m.modelMsg))
return tea.Batch(cmds...)
}
......
......@@ -67,7 +67,7 @@ func (m *ModelPsTree) Init() tea.Cmd {
h2 := sb.String()
sb.Reset()
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
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