summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Treusch von Buttlar <martin.tvb@vitraum.de>2017-05-17 07:19:36 +0200
committerMartin Treusch von Buttlar <martin.tvb@vitraum.de>2017-05-17 07:19:36 +0200
commit0e98babf9b4f9084d7e29b0f484f64ba62dc265b (patch)
tree6f0fcfd188fbae892e32612a3da2b7714a63b560
parent99bae528846f2fb900ff1168c1e143181f89e597 (diff)
refactor code which starts external commands
-rw-r--r--cmd/ponzu/add.go11
-rw-r--r--cmd/ponzu/build.go20
-rw-r--r--cmd/ponzu/main.go13
-rw-r--r--cmd/ponzu/new.go21
4 files changed, 17 insertions, 48 deletions
diff --git a/cmd/ponzu/add.go b/cmd/ponzu/add.go
index 533c171..db8aa2e 100644
--- a/cmd/ponzu/add.go
+++ b/cmd/ponzu/add.go
@@ -5,7 +5,6 @@ import (
"fmt"
"io"
"os"
- "os/exec"
"path/filepath"
"strings"
@@ -39,15 +38,7 @@ func getAddon(addonPath string) error {
// Go get
cmdOptions = append(cmdOptions, "get", addonPath)
- get := exec.Command(gocmd, cmdOptions...)
- get.Stderr = os.Stderr
- get.Stdout = os.Stdout
-
- err := get.Start()
- if err != nil {
- return addError(err)
- }
- err = get.Wait()
+ err := execAndWait(gocmd, cmdOptions...)
if err != nil {
return addError(err)
}
diff --git a/cmd/ponzu/build.go b/cmd/ponzu/build.go
index 53cd968..890ccbe 100644
--- a/cmd/ponzu/build.go
+++ b/cmd/ponzu/build.go
@@ -1,9 +1,6 @@
package main
import (
- "errors"
- "os"
- "os/exec"
"path/filepath"
"strings"
@@ -34,22 +31,7 @@ func buildPonzuServer() error {
// execute go build -o ponzu-cms cmd/ponzu/*.go
cmdPackageName := strings.Join([]string{".", "cmd", "ponzu"}, "/")
buildOptions := []string{"build", "-o", buildOutputName(), cmdPackageName}
- build := exec.Command(gocmd, buildOptions...)
- build.Stderr = os.Stderr
- build.Stdout = os.Stdout
-
- err = build.Start()
- if err != nil {
- return errors.New("Ponzu build step failed. Please try again. " + "\n" + err.Error())
-
- }
- err = build.Wait()
- if err != nil {
- return errors.New("Ponzu build step failed. Please try again. " + "\n" + err.Error())
-
- }
-
- return nil
+ return execAndWait(gocmd, buildOptions...)
}
var buildCmd = &cobra.Command{
diff --git a/cmd/ponzu/main.go b/cmd/ponzu/main.go
index 6d5afd2..6d8c974 100644
--- a/cmd/ponzu/main.go
+++ b/cmd/ponzu/main.go
@@ -204,3 +204,16 @@ func main() {
os.Exit(1)
}
}
+
+func execAndWait(command string, arg ...string) error {
+ cmd := exec.Command(command, arg...)
+ cmd.Stderr = os.Stderr
+ cmd.Stdout = os.Stdout
+
+ err := cmd.Start()
+ if err != nil {
+ return err
+
+ }
+ return cmd.Wait()
+}
diff --git a/cmd/ponzu/new.go b/cmd/ponzu/new.go
index 9e5a9d4..dccf99a 100644
--- a/cmd/ponzu/new.go
+++ b/cmd/ponzu/new.go
@@ -90,16 +90,7 @@ func createProjectInDir(path string) error {
local = filepath.Join(gopath, "src", fork)
}
- devClone := exec.Command("git", "clone", local, "--branch", "ponzu-dev", "--single-branch", path)
- devClone.Stdout = os.Stdout
- devClone.Stderr = os.Stderr
-
- err = devClone.Start()
- if err != nil {
- return err
- }
-
- err = devClone.Wait()
+ err = execAndWait("git", "clone", local, "--branch", "ponzu-dev", "--single-branch", path)
if err != nil {
return err
}
@@ -114,15 +105,7 @@ func createProjectInDir(path string) error {
}
// try to git clone the repository from the local machine's $GOPATH
- localClone := exec.Command("git", "clone", local, path)
- localClone.Stdout = os.Stdout
- localClone.Stderr = os.Stderr
-
- err = localClone.Start()
- if err != nil {
- return err
- }
- err = localClone.Wait()
+ err = execAndWait("git", "clone", local, path)
if err != nil {
fmt.Println("Couldn't clone from", local, "- trying network...")