diff --git a/pkg/commands/git.go b/pkg/commands/git.go index 05d42b433..3599f7b39 100644 --- a/pkg/commands/git.go +++ b/pkg/commands/git.go @@ -453,15 +453,7 @@ func (c *GitCommand) usingGpg() bool { func (c *GitCommand) Commit(message string, flags string) (*exec.Cmd, error) { command := fmt.Sprintf("git commit %s -m %s", flags, c.OSCommand.Quote(message)) if c.usingGpg() { - quotedCommand := "" - // Windows does not seem to like quotes around the command - if c.OSCommand.Platform.os == "windows" { - quotedCommand = command - } else { - quotedCommand = c.OSCommand.Quote(command) - } - - return c.OSCommand.ExecutableFromString(fmt.Sprintf("%s %s %s", c.OSCommand.Platform.shell, c.OSCommand.Platform.shellArg, quotedCommand)), nil + return c.OSCommand.ShellCommandFromString(command), nil } return nil, c.OSCommand.RunCommand(command) @@ -478,15 +470,7 @@ func (c *GitCommand) GetHeadCommitMessage() (string, error) { func (c *GitCommand) AmendHead() (*exec.Cmd, error) { command := "git commit --amend --no-edit --allow-empty" if c.usingGpg() { - quotedCommand := "" - // Windows does not seem to like quotes around the command - if c.OSCommand.Platform.os == "windows" { - quotedCommand = command - } else { - quotedCommand = c.OSCommand.Quote(command) - } - - return c.OSCommand.ExecutableFromString(fmt.Sprintf("%s %s %s", c.OSCommand.Platform.shell, c.OSCommand.Platform.shellArg, quotedCommand)), nil + return c.OSCommand.ShellCommandFromString(command), nil } return nil, c.OSCommand.RunCommand(command) diff --git a/pkg/commands/os.go b/pkg/commands/os.go index a27196f34..b3358b170 100644 --- a/pkg/commands/os.go +++ b/pkg/commands/os.go @@ -118,6 +118,19 @@ func (c *OSCommand) ExecutableFromString(commandStr string) *exec.Cmd { return cmd } +// ShellCommandFromString takes a string like `git commit` and returns an executable shell command for it +func (c *OSCommand) ShellCommandFromString(commandStr string) *exec.Cmd { + quotedCommand := "" + // Windows does not seem to like quotes around the command + if c.Platform.os == "windows" { + quotedCommand = commandStr + } else { + quotedCommand = c.Quote(commandStr) + } + + return c.ExecutableFromString(fmt.Sprintf("%s %s %s", c.Platform.shell, c.Platform.shellArg, quotedCommand)) +} + // RunCommandWithOutputLive runs RunCommandWithOutputLiveWrapper func (c *OSCommand) RunCommandWithOutputLive(command string, output func(string) string) error { return RunCommandWithOutputLiveWrapper(c, command, output)