github.com/andrewrech/lazygit@v0.8.1/pkg/gui/updates.go (about) 1 package gui 2 3 import "github.com/jesseduffield/gocui" 4 5 func (gui *Gui) showUpdatePrompt(newVersion string) error { 6 title := "New version available!" 7 message := "Download latest version? (enter/esc)" 8 currentView := gui.g.CurrentView() 9 return gui.createConfirmationPanel(gui.g, currentView, title, message, func(g *gocui.Gui, v *gocui.View) error { 10 gui.startUpdating(newVersion) 11 return nil 12 }, nil) 13 } 14 15 func (gui *Gui) onUserUpdateCheckFinish(newVersion string, err error) error { 16 if err != nil { 17 return gui.createErrorPanel(gui.g, err.Error()) 18 } 19 if newVersion == "" { 20 return gui.createErrorPanel(gui.g, "New version not found") 21 } 22 return gui.showUpdatePrompt(newVersion) 23 } 24 25 func (gui *Gui) onBackgroundUpdateCheckFinish(newVersion string, err error) error { 26 if err != nil { 27 // ignoring the error for now so that I'm not annoying users 28 gui.Log.Error(err.Error()) 29 return nil 30 } 31 if newVersion == "" { 32 return nil 33 } 34 if gui.Config.GetUserConfig().Get("update.method") == "background" { 35 gui.startUpdating(newVersion) 36 return nil 37 } 38 return gui.showUpdatePrompt(newVersion) 39 } 40 41 func (gui *Gui) startUpdating(newVersion string) { 42 gui.State.Updating = true 43 gui.statusManager.addWaitingStatus("updating") 44 gui.Updater.Update(newVersion, gui.onUpdateFinish) 45 } 46 47 func (gui *Gui) onUpdateFinish(err error) error { 48 gui.State.Updating = false 49 gui.statusManager.removeStatus("updating") 50 if err := gui.renderString(gui.g, "appStatus", ""); err != nil { 51 return err 52 } 53 if err != nil { 54 return gui.createErrorPanel(gui.g, "Update failed: "+err.Error()) 55 } 56 return nil 57 } 58 59 func (gui *Gui) createUpdateQuitConfirmation(g *gocui.Gui, v *gocui.View) error { 60 title := "Currently Updating" 61 message := "An update is in progress. Are you sure you want to quit?" 62 return gui.createConfirmationPanel(gui.g, v, title, message, func(g *gocui.Gui, v *gocui.View) error { 63 return gocui.ErrQuit 64 }, nil) 65 }