Skip to content

Commit 159ee83

Browse files
fanminshihasbro17
authored andcommitted
*: add codegen for Gopkg.toml
1 parent 7ba89fc commit 159ee83

File tree

2 files changed

+85
-1
lines changed

2 files changed

+85
-1
lines changed

commands/operator-sdk/cmd/new.go

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,18 @@ func doScaffold() {
297297
log.Fatalf("failed to create %v: %v", gitignorePath, err)
298298
}
299299

300-
// TODO: generate rest of the scaffold.
300+
// generate Gopkg.toml
301+
buf = &bytes.Buffer{}
302+
gopkgGen := scaffold.NewGopkgCodegen()
303+
gopkPath := filepath.Join(fullProjectPath, "Gopkg.toml")
304+
err = gopkgGen.Render(buf)
305+
if err != nil {
306+
log.Fatalf("failed to render the template for (%v): %v", gopkPath, err)
307+
}
308+
err = writeFileAndPrint(gopkPath, buf.Bytes(), defaultFileMode)
309+
if err != nil {
310+
log.Fatalf("failed to create %v: %v", gopkPath, err)
311+
}
301312
}
302313

303314
// Writes file to a given path and data buffer, as well as prints out a message confirming creation of a file

pkg/scaffold/gopkgtoml.go

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
package scaffold
2+
3+
import "io"
4+
5+
type gopkg struct {
6+
}
7+
8+
func NewGopkgCodegen() Codegen {
9+
return &gopkg{}
10+
}
11+
12+
func (g *gopkg) Render(w io.Writer) error {
13+
_, err := w.Write([]byte(gopkgTomlTemplate))
14+
return err
15+
}
16+
17+
const gopkgTomlTemplate = `# Force dep to vendor the code generators, which aren't imported just used at dev time.
18+
required = [
19+
"k8s.io/code-generator/cmd/defaulter-gen",
20+
"k8s.io/code-generator/cmd/deepcopy-gen",
21+
"k8s.io/code-generator/cmd/conversion-gen",
22+
"k8s.io/code-generator/cmd/client-gen",
23+
"k8s.io/code-generator/cmd/lister-gen",
24+
"k8s.io/code-generator/cmd/informer-gen",
25+
"k8s.io/code-generator/cmd/openapi-gen",
26+
"k8s.io/gengo/args",
27+
]
28+
29+
[[override]]
30+
name = "k8s.io/code-generator"
31+
# revision for tag "kubernetes-1.11.2"
32+
revision = "6702109cc68eb6fe6350b83e14407c8d7309fd1a"
33+
34+
[[override]]
35+
name = "k8s.io/api"
36+
# revision for tag "kubernetes-1.11.2"
37+
revision = "2d6f90ab1293a1fb871cf149423ebb72aa7423aa"
38+
39+
[[override]]
40+
name = "k8s.io/apiextensions-apiserver"
41+
# revision for tag "kubernetes-1.11.2"
42+
revision = "408db4a50408e2149acbd657bceb2480c13cb0a4"
43+
44+
[[override]]
45+
name = "k8s.io/apimachinery"
46+
# revision for tag "kubernetes-1.11.2"
47+
revision = "103fd098999dc9c0c88536f5c9ad2e5da39373ae"
48+
49+
[[override]]
50+
name = "k8s.io/client-go"
51+
# revision for tag "kubernetes-1.11.2"
52+
revision = "1f13a808da65775f22cbf47862c4e5898d8f4ca1"
53+
54+
[[override]]
55+
name = "sigs.k8s.io/controller-runtime"
56+
revision = "53fc44b56078cd095b11bd44cfa0288ee4cf718f"
57+
58+
[[constraint]]
59+
name = "github.com/operator-framework/operator-sdk"
60+
# The version rule is used for a specific release and the master branch for in between releases.
61+
branch = "master"
62+
# version = "=v0.0.6"
63+
64+
[prune]
65+
go-tests = true
66+
non-go = true
67+
unused-packages = true
68+
69+
[[prune.project]]
70+
name = "k8s.io/code-generator"
71+
non-go = false
72+
unused-packages = false
73+
`

0 commit comments

Comments
 (0)