mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-05-12 04:45:47 +02:00
Construct arg vector manually rather than parse string
By constructing an arg vector manually, we no longer need to quote arguments Mandate that args must be passed when building a command Now you need to provide an args array when building a command. There are a handful of places where we need to deal with a string, such as with user-defined custom commands, and for those we now require that at the callsite they use str.ToArgv to do that. I don't want to provide a method out of the box for it because I want to discourage its use. For some reason we were invoking a command through a shell when amending a commit, and I don't believe we needed to do that as there was nothing user- supplied about the command. So I've switched to using a regular command out- side the shell there
This commit is contained in:
parent
70e473b25d
commit
63dc07fded
221 changed files with 1050 additions and 885 deletions
|
@ -15,52 +15,52 @@ func NewRemoteCommands(gitCommon *GitCommon) *RemoteCommands {
|
|||
}
|
||||
|
||||
func (self *RemoteCommands) AddRemote(name string, url string) error {
|
||||
cmdStr := NewGitCmd("remote").
|
||||
Arg("add", self.cmd.Quote(name), self.cmd.Quote(url)).
|
||||
ToString()
|
||||
cmdArgs := NewGitCmd("remote").
|
||||
Arg("add", name, url).
|
||||
ToArgv()
|
||||
|
||||
return self.cmd.New(cmdStr).Run()
|
||||
return self.cmd.New(cmdArgs).Run()
|
||||
}
|
||||
|
||||
func (self *RemoteCommands) RemoveRemote(name string) error {
|
||||
cmdStr := NewGitCmd("remote").
|
||||
Arg("remove", self.cmd.Quote(name)).
|
||||
ToString()
|
||||
cmdArgs := NewGitCmd("remote").
|
||||
Arg("remove", name).
|
||||
ToArgv()
|
||||
|
||||
return self.cmd.New(cmdStr).Run()
|
||||
return self.cmd.New(cmdArgs).Run()
|
||||
}
|
||||
|
||||
func (self *RemoteCommands) RenameRemote(oldRemoteName string, newRemoteName string) error {
|
||||
cmdStr := NewGitCmd("remote").
|
||||
Arg("rename", self.cmd.Quote(oldRemoteName), self.cmd.Quote(newRemoteName)).
|
||||
ToString()
|
||||
cmdArgs := NewGitCmd("remote").
|
||||
Arg("rename", oldRemoteName, newRemoteName).
|
||||
ToArgv()
|
||||
|
||||
return self.cmd.New(cmdStr).Run()
|
||||
return self.cmd.New(cmdArgs).Run()
|
||||
}
|
||||
|
||||
func (self *RemoteCommands) UpdateRemoteUrl(remoteName string, updatedUrl string) error {
|
||||
cmdStr := NewGitCmd("remote").
|
||||
Arg("set-url", self.cmd.Quote(remoteName), self.cmd.Quote(updatedUrl)).
|
||||
ToString()
|
||||
cmdArgs := NewGitCmd("remote").
|
||||
Arg("set-url", remoteName, updatedUrl).
|
||||
ToArgv()
|
||||
|
||||
return self.cmd.New(cmdStr).Run()
|
||||
return self.cmd.New(cmdArgs).Run()
|
||||
}
|
||||
|
||||
func (self *RemoteCommands) DeleteRemoteBranch(remoteName string, branchName string) error {
|
||||
cmdStr := NewGitCmd("push").
|
||||
Arg(self.cmd.Quote(remoteName), "--delete", self.cmd.Quote(branchName)).
|
||||
ToString()
|
||||
cmdArgs := NewGitCmd("push").
|
||||
Arg(remoteName, "--delete", branchName).
|
||||
ToArgv()
|
||||
|
||||
return self.cmd.New(cmdStr).PromptOnCredentialRequest().WithMutex(self.syncMutex).Run()
|
||||
return self.cmd.New(cmdArgs).PromptOnCredentialRequest().WithMutex(self.syncMutex).Run()
|
||||
}
|
||||
|
||||
// CheckRemoteBranchExists Returns remote branch
|
||||
func (self *RemoteCommands) CheckRemoteBranchExists(branchName string) bool {
|
||||
cmdStr := NewGitCmd("show-ref").
|
||||
Arg("--verify", "--", fmt.Sprintf("refs/remotes/origin/%s", self.cmd.Quote(branchName))).
|
||||
ToString()
|
||||
cmdArgs := NewGitCmd("show-ref").
|
||||
Arg("--verify", "--", fmt.Sprintf("refs/remotes/origin/%s", branchName)).
|
||||
ToArgv()
|
||||
|
||||
_, err := self.cmd.New(cmdStr).DontLog().RunWithOutput()
|
||||
_, err := self.cmd.New(cmdArgs).DontLog().RunWithOutput()
|
||||
|
||||
return err == nil
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue