diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2023-05-21 17:00:29 +1000 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2023-05-23 19:49:19 +1000 |
commit | 63dc07fdedec58ae5836a601d9c8839d0481eda6 (patch) | |
tree | e49ce7cf9284ebebfd9d4f4d87311418a8993913 /pkg/commands/git_commands/patch.go | |
parent | 70e473b25d05d94f07c9d5c7751aaf826e7ad08d (diff) |
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
Diffstat (limited to 'pkg/commands/git_commands/patch.go')
-rw-r--r-- | pkg/commands/git_commands/patch.go | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/pkg/commands/git_commands/patch.go b/pkg/commands/git_commands/patch.go index 3ee8fa362..942785314 100644 --- a/pkg/commands/git_commands/patch.go +++ b/pkg/commands/git_commands/patch.go @@ -69,15 +69,15 @@ func (self *PatchCommands) ApplyPatch(patch string, opts ApplyPatchOpts) error { } func (self *PatchCommands) applyPatchFile(filepath string, opts ApplyPatchOpts) error { - cmdStr := NewGitCmd("apply"). + cmdArgs := NewGitCmd("apply"). ArgIf(opts.ThreeWay, "--3way"). ArgIf(opts.Cached, "--cached"). ArgIf(opts.Index, "--index"). ArgIf(opts.Reverse, "--reverse"). - Arg(self.cmd.Quote(filepath)). - ToString() + Arg(filepath). + ToArgv() - return self.cmd.New(cmdStr).Run() + return self.cmd.New(cmdArgs).Run() } func (self *PatchCommands) SaveTemporaryPatch(patch string) (string, error) { @@ -320,7 +320,7 @@ func (self *PatchCommands) PullPatchIntoNewCommit(commits []*models.Commit, comm // only some lines of a range of adjacent added lines. To solve this, we // get the diff of HEAD and the original commit and then apply that. func (self *PatchCommands) diffHeadAgainstCommit(commit *models.Commit) (string, error) { - cmdStr := NewGitCmd("diff").Arg("HEAD.." + commit.Sha).ToString() + cmdArgs := NewGitCmd("diff").Arg("HEAD.." + commit.Sha).ToArgv() - return self.cmd.New(cmdStr).RunWithOutput() + return self.cmd.New(cmdArgs).RunWithOutput() } |