1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-06-17 00:18:05 +02:00

start removing direct calls to cmd.New from gui

This commit is contained in:
Jesse Duffield
2022-01-07 19:19:24 +11:00
parent d9089098c3
commit e92076d2c2
4 changed files with 22 additions and 25 deletions

View File

@ -39,19 +39,33 @@ func (self *CommitCommands) ResetToCommit(sha string, strength string, envVars [
Run()
}
func (self *CommitCommands) CommitCmdObj(message string, flags string) oscommands.ICmdObj {
func (self *CommitCommands) CommitCmdObj(message string) oscommands.ICmdObj {
splitMessage := strings.Split(message, "\n")
lineArgs := ""
for _, line := range splitMessage {
lineArgs += fmt.Sprintf(" -m %s", self.cmd.Quote(line))
}
flagsStr := ""
if flags != "" {
flagsStr = fmt.Sprintf(" %s", flags)
skipHookPrefix := self.UserConfig.Git.SkipHookPrefix
noVerifyFlag := ""
if skipHookPrefix != "" && strings.HasPrefix(message, skipHookPrefix) {
noVerifyFlag = " --no-verify"
}
return self.cmd.New(fmt.Sprintf("git commit%s%s", flagsStr, lineArgs))
return self.cmd.New(fmt.Sprintf("git commit%s%s%s", noVerifyFlag, self.signoffFlag(), lineArgs))
}
// runs git commit without the -m argument meaning it will invoke the user's editor
func (self *CommitCommands) CommitEditorCmdObj() oscommands.ICmdObj {
return self.cmd.New(fmt.Sprintf("git commit%s", self.signoffFlag()))
}
func (self *CommitCommands) signoffFlag() string {
if self.UserConfig.Git.Commit.SignOff {
return " --signoff"
} else {
return ""
}
}
// Get the subject of the HEAD commit

View File

@ -252,7 +252,7 @@ func (self *PatchCommands) PullPatchIntoNewCommit(commits []*models.Commit, comm
head_message, _ := self.commit.GetHeadCommitMessage()
new_message := fmt.Sprintf("Split from \"%s\"", head_message)
err := self.commit.CommitCmdObj(new_message, "").Run()
err := self.commit.CommitCmdObj(new_message).Run()
if err != nil {
return err
}

View File

@ -14,17 +14,8 @@ func (gui *Gui) handleCommitConfirm() error {
if message == "" {
return gui.createErrorPanel(gui.Tr.CommitWithoutMessageErr)
}
flags := []string{}
skipHookPrefix := gui.UserConfig.Git.SkipHookPrefix
if skipHookPrefix != "" && strings.HasPrefix(message, skipHookPrefix) {
flags = append(flags, "--no-verify")
}
if gui.UserConfig.Git.Commit.SignOff {
flags = append(flags, "--signoff")
}
cmdObj := gui.GitCommand.Commit.CommitCmdObj(message, strings.Join(flags, " "))
cmdObj := gui.GitCommand.Commit.CommitCmdObj(message)
gui.logAction(gui.Tr.Actions.Commit)
_ = gui.returnFromContext()

View File

@ -471,17 +471,9 @@ func (gui *Gui) handleCommitEditorPress() error {
return gui.promptToStageAllAndRetry(gui.handleCommitEditorPress)
}
args := []string{"commit"}
if gui.UserConfig.Git.Commit.SignOff {
args = append(args, "--signoff")
}
cmdStr := "git " + strings.Join(args, " ")
gui.logAction(gui.Tr.Actions.Commit)
return gui.runSubprocessWithSuspenseAndRefresh(
gui.GitCommand.Cmd.New(cmdStr),
gui.GitCommand.Commit.CommitEditorCmdObj(),
)
}