summaryrefslogtreecommitdiffstats
path: root/pkg/commands/os.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/commands/os.go')
-rw-r--r--pkg/commands/os.go13
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)