From bb6b087a06b92b8ab6d6084b79373b506ea40845 Mon Sep 17 00:00:00 2001 From: Chao Xu Date: Thu, 25 Aug 2016 15:06:27 -0700 Subject: [PATCH] some improvement to client-gen --- .../client-gen/generators/client_generator.go | 17 +++++++---------- .../generators/generator_for_expansion.go | 8 +++++++- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/cmd/libs/go2idl/client-gen/generators/client_generator.go b/cmd/libs/go2idl/client-gen/generators/client_generator.go index ac55f9e776..dc79dfb607 100644 --- a/cmd/libs/go2idl/client-gen/generators/client_generator.go +++ b/cmd/libs/go2idl/client-gen/generators/client_generator.go @@ -19,7 +19,6 @@ package generators import ( "fmt" - "os" "path/filepath" "strings" @@ -107,15 +106,13 @@ func packageForGroup(gv unversioned.GroupVersion, typeList []*types.Type, packag }) expansionFileName := "generated_expansion" - // To avoid overriding user's manual modification, only generate the expansion file if it doesn't exist. - if _, err := os.Stat(filepath.Join(srcTreePath, outputPackagePath, expansionFileName+".go")); os.IsNotExist(err) { - generators = append(generators, &genExpansion{ - DefaultGen: generator.DefaultGen{ - OptionalName: expansionFileName, - }, - types: typeList, - }) - } + generators = append(generators, &genExpansion{ + groupPath: filepath.Join(srcTreePath, outputPackagePath), + DefaultGen: generator.DefaultGen{ + OptionalName: expansionFileName, + }, + types: typeList, + }) return generators }, diff --git a/cmd/libs/go2idl/client-gen/generators/generator_for_expansion.go b/cmd/libs/go2idl/client-gen/generators/generator_for_expansion.go index 20753b5bb8..b255f4cc99 100644 --- a/cmd/libs/go2idl/client-gen/generators/generator_for_expansion.go +++ b/cmd/libs/go2idl/client-gen/generators/generator_for_expansion.go @@ -18,6 +18,9 @@ package generators import ( "io" + "os" + "path/filepath" + "strings" "k8s.io/kubernetes/cmd/libs/go2idl/generator" "k8s.io/kubernetes/cmd/libs/go2idl/types" @@ -26,6 +29,7 @@ import ( // genExpansion produces a file for a group client, e.g. ExtensionsClient for the extension group. type genExpansion struct { generator.DefaultGen + groupPath string // types in a group types []*types.Type } @@ -38,7 +42,9 @@ func (g *genExpansion) Filter(c *generator.Context, t *types.Type) bool { func (g *genExpansion) GenerateType(c *generator.Context, t *types.Type, w io.Writer) error { sw := generator.NewSnippetWriter(w, c, "$", "$") for _, t := range g.types { - sw.Do(expansionInterfaceTemplate, t) + if _, err := os.Stat(filepath.Join(g.groupPath, strings.ToLower(t.Name.Name+"_expansion.go"))); os.IsNotExist(err) { + sw.Do(expansionInterfaceTemplate, t) + } } return sw.Error() }