From a2b9b4e2b686355f2ae96bfd8e67c5a1d3448f16 Mon Sep 17 00:00:00 2001 From: fanmin shi Date: Thu, 1 Mar 2018 14:46:44 -0800 Subject: [PATCH 1/2] pkg/generator: change pullDep to renderGoDep --- pkg/generator/generator.go | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/pkg/generator/generator.go b/pkg/generator/generator.go index a52da0e421..97078c557f 100644 --- a/pkg/generator/generator.go +++ b/pkg/generator/generator.go @@ -87,10 +87,10 @@ func (g *Generator) Render() error { if err := g.renderTmp(); err != nil { return err } - return g.pullDep() + return g.renderGoDep() } -func (g *Generator) pullDep() error { +func (g *Generator) renderGoDep() error { buf := &bytes.Buffer{} if err := renderGopkgTomlFile(buf); err != nil { return err @@ -103,11 +103,7 @@ func (g *Generator) pullDep() error { if err := renderGopkgLockFile(buf); err != nil { return err } - if err := ioutil.WriteFile(filepath.Join(g.projectName, gopkglock), buf.Bytes(), defaultFileMode); err != nil { - return err - } - // TODO: `dep ensure` - return nil + return ioutil.WriteFile(filepath.Join(g.projectName, gopkglock), buf.Bytes(), defaultFileMode) } func (g *Generator) renderCmd() error { From cd67e103911a9d68c1c8e89f197a85fdab42a038 Mon Sep 17 00:00:00 2001 From: fanmin shi Date: Thu, 1 Mar 2018 15:01:50 -0800 Subject: [PATCH 2/2] commands/operator-sdk: pull deps after code/scripts generation --- commands/operator-sdk/cmd/new.go | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/commands/operator-sdk/cmd/new.go b/commands/operator-sdk/cmd/new.go index 76e2e90fb5..a4af85e5ac 100644 --- a/commands/operator-sdk/cmd/new.go +++ b/commands/operator-sdk/cmd/new.go @@ -3,6 +3,7 @@ package cmd import ( "fmt" "os" + "os/exec" "path/filepath" "strings" @@ -47,8 +48,10 @@ var ( ) const ( - gopath = "GOPATH" - src = "src" + gopath = "GOPATH" + src = "src" + dep = "dep" + ensureCmd = "ensure" ) func newFunc(cmd *cobra.Command, args []string) { @@ -62,6 +65,7 @@ func newFunc(cmd *cobra.Command, args []string) { if err != nil { cmdError.ExitWithError(cmdError.ExitError, fmt.Errorf("failed to create project %v: %v", projectName, err)) } + pullDep() } func parse(args []string) { @@ -77,10 +81,7 @@ func repoPath() string { if len(gp) == 0 { cmdError.ExitWithError(cmdError.ExitError, fmt.Errorf("$GOPATH env not set")) } - wd, err := os.Getwd() - if err != nil { - cmdError.ExitWithError(cmdError.ExitError, fmt.Errorf("failed to determine the full path of the current directory: %v", err)) - } + wd := mustGetwd() // check if this project's repository path is rooted under $GOPATH if !strings.HasPrefix(wd, gp) { cmdError.ExitWithError(cmdError.ExitError, fmt.Errorf("project's repository path (%v) is not rooted under GOPATH (%v)", wd, gp)) @@ -94,3 +95,21 @@ func repoPath() string { func verifyFlags() { // TODO: verify format of input flags. } + +func pullDep() { + dc := exec.Command(dep, ensureCmd) + dc.Dir = filepath.Join(mustGetwd(), projectName) + o, err := dc.CombinedOutput() + if err != nil { + cmdError.ExitWithError(cmdError.ExitError, fmt.Errorf("failed to ensure dependencies: (%v)", string(o))) + } + fmt.Fprintln(os.Stdout, string(o)) +} + +func mustGetwd() string { + wd, err := os.Getwd() + if err != nil { + cmdError.ExitWithError(cmdError.ExitError, fmt.Errorf("failed to determine the full path of the current directory: %v", err)) + } + return wd +}