aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main.go24
1 files changed, 22 insertions, 2 deletions
diff --git a/main.go b/main.go
index 6e89895..31410fa 100644
--- a/main.go
+++ b/main.go
@@ -116,7 +116,27 @@ func Readline() string {
}
func ExecuteDoltCommand(args ...string) {
- cmd := exec.Command("dolt", args...)
+ var nargs []string
+ var join bool
+ // If an arg starts with a quote, start joining everything to the last element until an arg ends with a quote
+ for _, arg := range args {
+ if join {
+ if strings.HasSuffix(arg, "\"") {
+ join = false
+ arg = strings.TrimSuffix(arg, "\"")
+ }
+ nargs[len(nargs)-1] += " " + arg
+ } else {
+ if strings.HasPrefix(arg, "\"") {
+ join = true
+ arg = strings.TrimPrefix(arg, "\"")
+ }
+ nargs = append(nargs, arg)
+ }
+ }
+
+ // Run dolt command
+ cmd := exec.Command("dolt", nargs...)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.Stdin = os.Stdin
@@ -173,7 +193,7 @@ func CreateTable(table string) error {
if editor == "" {
editor = "vim"
}
- cmd = exec.Command(editor, schemafile.Name())
+ cmd = exec.Command(editor, schemafile.Name())
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.Stdin = os.Stdin