diff options
author | Randshot <randshot@norealm.xyz> | 2020-07-13 16:00:00 +0200 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2020-07-14 08:26:53 +1000 |
commit | 014e06eefd2a779e3458c23cdd1525b13f697526 (patch) | |
tree | e36bdc2c86d0f2213845e88edb0c04efd189485f /pkg/commands/os.go | |
parent | 39a2122dc00651267c864647abf2c88cfd9d1e43 (diff) |
factor out duplicate code into 'ShellCommandFromString'v0.20.8
Signed-off-by: Randshot <randshot@norealm.xyz>
Diffstat (limited to 'pkg/commands/os.go')
-rw-r--r-- | pkg/commands/os.go | 13 |
1 files changed, 13 insertions, 0 deletions
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) |