mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-06-23 00:39:13 +02:00
minor cleanup
WIP
This commit is contained in:
@ -129,8 +129,8 @@ func (gui *Gui) handleGitFetch(g *gocui.Gui, v *gocui.View) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
go func() {
|
go func() {
|
||||||
unamePassOpend, err := gui.fetch(g, v, true)
|
err := gui.fetch(g, v, true)
|
||||||
gui.HandleCredentialsPopup(g, unamePassOpend, err)
|
gui.HandleCredentialsPopup(g, err)
|
||||||
}()
|
}()
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -77,10 +77,8 @@ func (gui *Gui) handleCredentialsViewFocused(g *gocui.Gui, v *gocui.View) error
|
|||||||
}
|
}
|
||||||
|
|
||||||
// HandleCredentialsPopup handles the views after executing a command that might ask for credentials
|
// HandleCredentialsPopup handles the views after executing a command that might ask for credentials
|
||||||
func (gui *Gui) HandleCredentialsPopup(g *gocui.Gui, popupOpened bool, cmdErr error) {
|
func (gui *Gui) HandleCredentialsPopup(g *gocui.Gui, cmdErr error) {
|
||||||
if popupOpened {
|
_, _ = gui.g.SetViewOnBottom("credentials")
|
||||||
_, _ = gui.g.SetViewOnBottom("credentials")
|
|
||||||
}
|
|
||||||
if cmdErr != nil {
|
if cmdErr != nil {
|
||||||
errMessage := cmdErr.Error()
|
errMessage := cmdErr.Error()
|
||||||
if strings.Contains(errMessage, "Invalid username or password") {
|
if strings.Contains(errMessage, "Invalid username or password") {
|
||||||
|
@ -471,13 +471,17 @@ func (gui *Gui) pullFiles(v *gocui.View, args string) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// we want to first fetch, handling username if it comes up, then either merge or rebase. If merging we might have a merge conflict, likewise if rebasing we might have a conflict too.
|
||||||
|
// we need a way of saying .then or .catch
|
||||||
|
|
||||||
|
// what if we had a struct which contained an array of functions to run, each of which return a function, or perhaps write to a channel when they're done, and if there is no error, we run the next thing. In this case we first want to fetch, potentially handling a credential popup, then we want to rebase.
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
unamePassOpend := false
|
|
||||||
err := gui.GitCommand.Pull(args, func(passOrUname string) string {
|
err := gui.GitCommand.Pull(args, func(passOrUname string) string {
|
||||||
unamePassOpend = true
|
|
||||||
return gui.waitForPassUname(gui.g, v, passOrUname)
|
return gui.waitForPassUname(gui.g, v, passOrUname)
|
||||||
})
|
})
|
||||||
gui.HandleCredentialsPopup(gui.g, unamePassOpend, err)
|
// gui.handleGenericMergeCommandResult(err)
|
||||||
|
gui.HandleCredentialsPopup(gui.g, err)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
@ -488,13 +492,11 @@ func (gui *Gui) pushWithForceFlag(g *gocui.Gui, v *gocui.View, force bool, upstr
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
go func() {
|
go func() {
|
||||||
unamePassOpend := false
|
|
||||||
branchName := gui.getCheckedOutBranch().Name
|
branchName := gui.getCheckedOutBranch().Name
|
||||||
err := gui.GitCommand.Push(branchName, force, upstream, args, func(passOrUname string) string {
|
err := gui.GitCommand.Push(branchName, force, upstream, args, func(passOrUname string) string {
|
||||||
unamePassOpend = true
|
|
||||||
return gui.waitForPassUname(g, v, passOrUname)
|
return gui.waitForPassUname(g, v, passOrUname)
|
||||||
})
|
})
|
||||||
gui.HandleCredentialsPopup(g, unamePassOpend, err)
|
gui.HandleCredentialsPopup(g, err)
|
||||||
}()
|
}()
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -166,10 +166,8 @@ func (gui *Gui) handleInfoClick(g *gocui.Gui, v *gocui.View) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (gui *Gui) fetch(g *gocui.Gui, v *gocui.View, canAskForCredentials bool) (unamePassOpend bool, err error) {
|
func (gui *Gui) fetch(g *gocui.Gui, v *gocui.View, canAskForCredentials bool) (err error) {
|
||||||
unamePassOpend = false
|
|
||||||
err = gui.GitCommand.Fetch(func(passOrUname string) string {
|
err = gui.GitCommand.Fetch(func(passOrUname string) string {
|
||||||
unamePassOpend = true
|
|
||||||
return gui.waitForPassUname(gui.g, v, passOrUname)
|
return gui.waitForPassUname(gui.g, v, passOrUname)
|
||||||
}, canAskForCredentials)
|
}, canAskForCredentials)
|
||||||
|
|
||||||
@ -184,5 +182,5 @@ func (gui *Gui) fetch(g *gocui.Gui, v *gocui.View, canAskForCredentials bool) (u
|
|||||||
|
|
||||||
gui.refreshSidePanels(refreshOptions{scope: []int{BRANCHES, COMMITS, REMOTES, TAGS}, mode: ASYNC})
|
gui.refreshSidePanels(refreshOptions{scope: []int{BRANCHES, COMMITS, REMOTES, TAGS}, mode: ASYNC})
|
||||||
|
|
||||||
return unamePassOpend, err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -501,12 +501,12 @@ func (gui *Gui) startBackgroundFetch() {
|
|||||||
if !isNew {
|
if !isNew {
|
||||||
time.After(60 * time.Second)
|
time.After(60 * time.Second)
|
||||||
}
|
}
|
||||||
_, err := gui.fetch(gui.g, gui.g.CurrentView(), false)
|
err := gui.fetch(gui.g, gui.g.CurrentView(), false)
|
||||||
if err != nil && strings.Contains(err.Error(), "exit status 128") && isNew {
|
if err != nil && strings.Contains(err.Error(), "exit status 128") && isNew {
|
||||||
_ = gui.createConfirmationPanel(gui.g, gui.g.CurrentView(), true, gui.Tr.SLocalize("NoAutomaticGitFetchTitle"), gui.Tr.SLocalize("NoAutomaticGitFetchBody"), nil, nil)
|
_ = gui.createConfirmationPanel(gui.g, gui.g.CurrentView(), true, gui.Tr.SLocalize("NoAutomaticGitFetchTitle"), gui.Tr.SLocalize("NoAutomaticGitFetchBody"), nil, nil)
|
||||||
} else {
|
} else {
|
||||||
gui.goEvery(time.Second*60, gui.stopChan, func() error {
|
gui.goEvery(time.Second*60, gui.stopChan, func() error {
|
||||||
_, err := gui.fetch(gui.g, gui.g.CurrentView(), false)
|
err := gui.fetch(gui.g, gui.g.CurrentView(), false)
|
||||||
return err
|
return err
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user