summaryrefslogtreecommitdiffstats
path: root/pkg/gui/app_status_manager.go
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2018-08-25 15:55:49 +1000
committerJesse Duffield <jessedduffield@gmail.com>2018-08-25 17:32:34 +1000
commit21f6e9ba87e3513973a62b81e67de253dc8afcde (patch)
tree6cf786783de0fd38ecd014f04cb33aef5541433b /pkg/gui/app_status_manager.go
parentf24c95aedec785985dfcd98ff3997152c193bd3e (diff)
auto-updates
Diffstat (limited to 'pkg/gui/app_status_manager.go')
-rw-r--r--pkg/gui/app_status_manager.go44
1 files changed, 44 insertions, 0 deletions
diff --git a/pkg/gui/app_status_manager.go b/pkg/gui/app_status_manager.go
new file mode 100644
index 000000000..2d479e42f
--- /dev/null
+++ b/pkg/gui/app_status_manager.go
@@ -0,0 +1,44 @@
+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
+}