some improvement to client-gen

pull/6/head
Chao Xu 2016-08-25 15:06:27 -07:00
parent d836b248b2
commit bb6b087a06
2 changed files with 14 additions and 11 deletions

View File

@ -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
},

View File

@ -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()
}