From fa97b0c76ee342c13aef6ddd5b06584f4c0dcbff Mon Sep 17 00:00:00 2001 From: Jesse Duffield Date: Sat, 24 Dec 2022 09:56:27 +1100 Subject: move background code into its own file --- pkg/gui/gui.go | 60 +--------------------------------------------------------- 1 file changed, 1 insertion(+), 59 deletions(-) (limited to 'pkg/gui/gui.go') diff --git a/pkg/gui/gui.go b/pkg/gui/gui.go index 4fb5cca95..1431f6c16 100644 --- a/pkg/gui/gui.go +++ b/pkg/gui/gui.go @@ -7,7 +7,6 @@ import ( "os" "strings" "sync" - "time" "github.com/jesseduffield/gocui" appTypes "github.com/jesseduffield/lazygit/pkg/app/types" @@ -527,27 +526,7 @@ func (gui *Gui) Run(startArgs appTypes.StartArgs) error { gui.waitForIntro.Add(1) - if userConfig.Git.AutoFetch { - fetchInterval := userConfig.Refresher.FetchInterval - if fetchInterval > 0 { - go utils.Safe(gui.startBackgroundFetch) - } else { - gui.c.Log.Errorf( - "Value of config option 'refresher.fetchInterval' (%d) is invalid, disabling auto-fetch", - fetchInterval) - } - } - - if userConfig.Git.AutoRefresh { - refreshInterval := userConfig.Refresher.RefreshInterval - if refreshInterval > 0 { - gui.goEvery(time.Second*time.Duration(refreshInterval), gui.stopChan, gui.refreshFilesAndSubmodules) - } else { - gui.c.Log.Errorf( - "Value of config option 'refresher.refreshInterval' (%d) is invalid, disabling auto-refresh", - refreshInterval) - } - } + gui.startBackgroundRoutines() gui.c.Log.Info("starting main loop") @@ -722,43 +701,6 @@ func (gui *Gui) showIntroPopupMessage(done chan struct{}) error { }) } -func (gui *Gui) goEvery(interval time.Duration, stop chan struct{}, function func() error) { - go utils.Safe(func() { - ticker := time.NewTicker(interval) - defer ticker.Stop() - for { - select { - case <-ticker.C: - if gui.PauseBackgroundThreads { - continue - } - _ = function() - case <-stop: - return - } - } - }) -} - -func (gui *Gui) startBackgroundFetch() { - gui.waitForIntro.Wait() - isNew := gui.IsNewRepo - userConfig := gui.UserConfig - if !isNew { - time.After(time.Duration(userConfig.Refresher.FetchInterval) * time.Second) - } - err := gui.backgroundFetch() - if err != nil && strings.Contains(err.Error(), "exit status 128") && isNew { - _ = gui.c.Alert(gui.c.Tr.NoAutomaticGitFetchTitle, gui.c.Tr.NoAutomaticGitFetchBody) - } else { - gui.goEvery(time.Second*time.Duration(userConfig.Refresher.FetchInterval), gui.stopChan, func() error { - err := gui.backgroundFetch() - gui.render() - return err - }) - } -} - // setColorScheme sets the color scheme for the app based on the user config func (gui *Gui) setColorScheme() error { userConfig := gui.UserConfig -- cgit v1.2.3