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.
 | 
					 | 
				
			||||||
			if _, err := os.Stat(filepath.Join(srcTreePath, outputPackagePath, expansionFileName+".go")); os.IsNotExist(err) {
 | 
					 | 
				
			||||||
			generators = append(generators, &genExpansion{
 | 
								generators = append(generators, &genExpansion{
 | 
				
			||||||
 | 
									groupPath: filepath.Join(srcTreePath, outputPackagePath),
 | 
				
			||||||
				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,8 +42,10 @@ 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 {
 | 
				
			||||||
 | 
							if _, err := os.Stat(filepath.Join(g.groupPath, strings.ToLower(t.Name.Name+"_expansion.go"))); os.IsNotExist(err) {
 | 
				
			||||||
			sw.Do(expansionInterfaceTemplate, t)
 | 
								sw.Do(expansionInterfaceTemplate, t)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	return sw.Error()
 | 
						return sw.Error()
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user