diff options
author | Martin Treusch von Buttlar <martin.tvb@vitraum.de> | 2017-05-17 07:19:36 +0200 |
---|---|---|
committer | Martin Treusch von Buttlar <martin.tvb@vitraum.de> | 2017-05-17 07:19:36 +0200 |
commit | 0e98babf9b4f9084d7e29b0f484f64ba62dc265b (patch) | |
tree | 6f0fcfd188fbae892e32612a3da2b7714a63b560 | |
parent | 99bae528846f2fb900ff1168c1e143181f89e597 (diff) |
refactor code which starts external commands
-rw-r--r-- | cmd/ponzu/add.go | 11 | ||||
-rw-r--r-- | cmd/ponzu/build.go | 20 | ||||
-rw-r--r-- | cmd/ponzu/main.go | 13 | ||||
-rw-r--r-- | cmd/ponzu/new.go | 21 |
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...") |