some improvement to client-gen
This commit is contained in:
@@ -19,7 +19,6 @@ package generators
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
@@ -107,15 +106,13 @@ func packageForGroup(gv unversioned.GroupVersion, typeList []*types.Type, packag
|
|||||||
})
|
})
|
||||||
|
|
||||||
expansionFileName := "generated_expansion"
|
expansionFileName := "generated_expansion"
|
||||||
// To avoid overriding user's manual modification, only generate the expansion file if it doesn't exist.
|
generators = append(generators, &genExpansion{
|
||||||
if _, err := os.Stat(filepath.Join(srcTreePath, outputPackagePath, expansionFileName+".go")); os.IsNotExist(err) {
|
groupPath: filepath.Join(srcTreePath, outputPackagePath),
|
||||||
generators = append(generators, &genExpansion{
|
DefaultGen: generator.DefaultGen{
|
||||||
DefaultGen: generator.DefaultGen{
|
OptionalName: expansionFileName,
|
||||||
OptionalName: expansionFileName,
|
},
|
||||||
},
|
types: typeList,
|
||||||
types: typeList,
|
})
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
return generators
|
return generators
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -18,6 +18,9 @@ package generators
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"io"
|
"io"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"k8s.io/kubernetes/cmd/libs/go2idl/generator"
|
"k8s.io/kubernetes/cmd/libs/go2idl/generator"
|
||||||
"k8s.io/kubernetes/cmd/libs/go2idl/types"
|
"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.
|
// genExpansion produces a file for a group client, e.g. ExtensionsClient for the extension group.
|
||||||
type genExpansion struct {
|
type genExpansion struct {
|
||||||
generator.DefaultGen
|
generator.DefaultGen
|
||||||
|
groupPath string
|
||||||
// types in a group
|
// types in a group
|
||||||
types []*types.Type
|
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 {
|
func (g *genExpansion) GenerateType(c *generator.Context, t *types.Type, w io.Writer) error {
|
||||||
sw := generator.NewSnippetWriter(w, c, "$", "$")
|
sw := generator.NewSnippetWriter(w, c, "$", "$")
|
||||||
for _, t := range g.types {
|
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()
|
return sw.Error()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user