mirror of
https://github.com/jesseduffield/lazygit.git
synced 2024-11-30 09:16:47 +02:00
45 lines
894 B
Go
45 lines
894 B
Go
|
package gui
|
||
|
|
||
|
import "github.com/jesseduffield/lazygit/pkg/utils"
|
||
|
|
||
|
type appStatus struct {
|
||
|
name string
|
||
|
statusType string
|
||
|
duration int
|
||
|
}
|
||
|
|
||
|
type statusManager struct {
|
||
|
statuses []appStatus
|
||
|
}
|
||
|
|
||
|
func (m *statusManager) removeStatus(name string) {
|
||
|
newStatuses := []appStatus{}
|
||
|
for _, status := range m.statuses {
|
||
|
if status.name != name {
|
||
|
newStatuses = append(newStatuses, status)
|
||
|
}
|
||
|
}
|
||
|
m.statuses = newStatuses
|
||
|
}
|
||
|
|
||
|
func (m *statusManager) addWaitingStatus(name string) {
|
||
|
m.removeStatus(name)
|
||
|
newStatus := appStatus{
|
||
|
name: name,
|
||
|
statusType: "waiting",
|
||
|
duration: 0,
|
||
|
}
|
||
|
m.statuses = append([]appStatus{newStatus}, m.statuses...)
|
||
|
}
|
||
|
|
||
|
func (m *statusManager) getStatusString() string {
|
||
|
if len(m.statuses) == 0 {
|
||
|
return ""
|
||
|
}
|
||
|
topStatus := m.statuses[0]
|
||
|
if topStatus.statusType == "waiting" {
|
||
|
return topStatus.name + " " + utils.Loader()
|
||
|
}
|
||
|
return topStatus.name
|
||
|
}
|