mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-14 06:15:45 +00:00
Rename DefaultPackage to SimplePackage
This commit is contained in:
parent
bd31265d23
commit
b2832697d5
@ -161,16 +161,16 @@ func typeName(t *types.Type) string {
|
|||||||
return fmt.Sprintf("%s.%s", typePackage, t.Name.Name)
|
return fmt.Sprintf("%s.%s", typePackage, t.Name.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
func generatorForApplyConfigurationsPackage(outputDirBase, outputPkgBase, pkgSubdir string, boilerplate []byte, gv clientgentypes.GroupVersion, typesToGenerate []applyConfig, refs refGraph, models *typeModels) *generator.DefaultPackage {
|
func generatorForApplyConfigurationsPackage(outputDirBase, outputPkgBase, pkgSubdir string, boilerplate []byte, gv clientgentypes.GroupVersion, typesToGenerate []applyConfig, refs refGraph, models *typeModels) generator.Package {
|
||||||
outputDir := filepath.Join(outputDirBase, pkgSubdir)
|
outputDir := filepath.Join(outputDirBase, pkgSubdir)
|
||||||
outputPkg := filepath.Join(outputPkgBase, pkgSubdir)
|
outputPkg := filepath.Join(outputPkgBase, pkgSubdir)
|
||||||
|
|
||||||
return &generator.DefaultPackage{
|
return &generator.SimplePackage{
|
||||||
PackageName: gv.Version.PackageName(),
|
PkgName: gv.Version.PackageName(),
|
||||||
PackagePath: outputPkg,
|
PkgPath: outputPkg,
|
||||||
Source: outputDir,
|
PkgDir: outputDir,
|
||||||
HeaderText: boilerplate,
|
HeaderComment: boilerplate,
|
||||||
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
|
GeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {
|
||||||
for _, toGenerate := range typesToGenerate {
|
for _, toGenerate := range typesToGenerate {
|
||||||
var openAPIType *string
|
var openAPIType *string
|
||||||
gvk := gvk{
|
gvk := gvk{
|
||||||
@ -199,13 +199,13 @@ func generatorForApplyConfigurationsPackage(outputDirBase, outputPkgBase, pkgSub
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func generatorForUtils(outputDirBase, outputPkgBase string, boilerplate []byte, groupVersions map[string]clientgentypes.GroupVersions, applyConfigsForGroupVersion map[clientgentypes.GroupVersion][]applyConfig, groupGoNames map[string]string) *generator.DefaultPackage {
|
func generatorForUtils(outputDirBase, outputPkgBase string, boilerplate []byte, groupVersions map[string]clientgentypes.GroupVersions, applyConfigsForGroupVersion map[clientgentypes.GroupVersion][]applyConfig, groupGoNames map[string]string) generator.Package {
|
||||||
return &generator.DefaultPackage{
|
return &generator.SimplePackage{
|
||||||
PackageName: filepath.Base(outputPkgBase),
|
PkgName: filepath.Base(outputPkgBase),
|
||||||
PackagePath: outputPkgBase,
|
PkgPath: outputPkgBase,
|
||||||
Source: outputDirBase,
|
PkgDir: outputDirBase,
|
||||||
HeaderText: boilerplate,
|
HeaderComment: boilerplate,
|
||||||
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
|
GeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {
|
||||||
generators = append(generators, &utilGenerator{
|
generators = append(generators, &utilGenerator{
|
||||||
DefaultGen: generator.DefaultGen{
|
DefaultGen: generator.DefaultGen{
|
||||||
OptionalName: "utils",
|
OptionalName: "utils",
|
||||||
@ -221,15 +221,15 @@ func generatorForUtils(outputDirBase, outputPkgBase string, boilerplate []byte,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func generatorForInternal(outputDirBase, outputPkgBase string, boilerplate []byte, models *typeModels) *generator.DefaultPackage {
|
func generatorForInternal(outputDirBase, outputPkgBase string, boilerplate []byte, models *typeModels) generator.Package {
|
||||||
outputDir := filepath.Join(outputDirBase, "internal")
|
outputDir := filepath.Join(outputDirBase, "internal")
|
||||||
outputPkg := filepath.Join(outputPkgBase, "internal")
|
outputPkg := filepath.Join(outputPkgBase, "internal")
|
||||||
return &generator.DefaultPackage{
|
return &generator.SimplePackage{
|
||||||
PackageName: filepath.Base(outputPkg),
|
PkgName: filepath.Base(outputPkg),
|
||||||
PackagePath: outputPkg,
|
PkgPath: outputPkg,
|
||||||
Source: outputDir,
|
PkgDir: outputDir,
|
||||||
HeaderText: boilerplate,
|
HeaderComment: boilerplate,
|
||||||
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
|
GeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {
|
||||||
generators = append(generators, &internalGenerator{
|
generators = append(generators, &internalGenerator{
|
||||||
DefaultGen: generator.DefaultGen{
|
DefaultGen: generator.DefaultGen{
|
||||||
OptionalName: "internal",
|
OptionalName: "internal",
|
||||||
|
@ -132,15 +132,15 @@ func packageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, cli
|
|||||||
gvDir := filepath.Join(clientsetDir, subdir)
|
gvDir := filepath.Join(clientsetDir, subdir)
|
||||||
gvPkg := filepath.Join(clientsetPkg, subdir)
|
gvPkg := filepath.Join(clientsetPkg, subdir)
|
||||||
|
|
||||||
return &generator.DefaultPackage{
|
return &generator.SimplePackage{
|
||||||
PackageName: strings.ToLower(gv.Version.NonEmpty()),
|
PkgName: strings.ToLower(gv.Version.NonEmpty()),
|
||||||
PackagePath: gvPkg,
|
PkgPath: gvPkg,
|
||||||
Source: gvDir,
|
PkgDir: gvDir,
|
||||||
HeaderText: boilerplate,
|
HeaderComment: boilerplate,
|
||||||
PackageDocumentation: []byte("// This package has the automatically generated typed clients.\n"),
|
PkgDocComment: []byte("// This package has the automatically generated typed clients.\n"),
|
||||||
// GeneratorFunc returns a list of generators. Each generator makes a
|
// GeneratorsFunc returns a list of generators. Each generator makes a
|
||||||
// single file.
|
// single file.
|
||||||
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
|
GeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {
|
||||||
generators = []generator.Generator{
|
generators = []generator.Generator{
|
||||||
// Always generate a "doc.go" file.
|
// Always generate a "doc.go" file.
|
||||||
generator.DefaultGen{OptionalName: "doc"},
|
generator.DefaultGen{OptionalName: "doc"},
|
||||||
@ -197,14 +197,14 @@ func packageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, cli
|
|||||||
}
|
}
|
||||||
|
|
||||||
func packageForClientset(customArgs *clientgenargs.CustomArgs, clientsetDir, clientsetPkg string, groupGoNames map[clientgentypes.GroupVersion]string, boilerplate []byte) generator.Package {
|
func packageForClientset(customArgs *clientgenargs.CustomArgs, clientsetDir, clientsetPkg string, groupGoNames map[clientgentypes.GroupVersion]string, boilerplate []byte) generator.Package {
|
||||||
return &generator.DefaultPackage{
|
return &generator.SimplePackage{
|
||||||
PackageName: customArgs.ClientsetName,
|
PkgName: customArgs.ClientsetName,
|
||||||
PackagePath: clientsetPkg,
|
PkgPath: clientsetPkg,
|
||||||
Source: clientsetDir,
|
PkgDir: clientsetDir,
|
||||||
HeaderText: boilerplate,
|
HeaderComment: boilerplate,
|
||||||
// GeneratorFunc returns a list of generators. Each generator generates a
|
// GeneratorsFunc returns a list of generators. Each generator generates a
|
||||||
// single file.
|
// single file.
|
||||||
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
|
GeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {
|
||||||
generators = []generator.Generator{
|
generators = []generator.Generator{
|
||||||
&genClientset{
|
&genClientset{
|
||||||
DefaultGen: generator.DefaultGen{
|
DefaultGen: generator.DefaultGen{
|
||||||
@ -237,15 +237,15 @@ NextGroup:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return &generator.DefaultPackage{
|
return &generator.SimplePackage{
|
||||||
PackageName: "scheme",
|
PkgName: "scheme",
|
||||||
PackagePath: schemePkg,
|
PkgPath: schemePkg,
|
||||||
Source: schemeDir,
|
PkgDir: schemeDir,
|
||||||
HeaderText: boilerplate,
|
HeaderComment: boilerplate,
|
||||||
PackageDocumentation: []byte("// This package contains the scheme of the automatically generated clientset.\n"),
|
PkgDocComment: []byte("// This package contains the scheme of the automatically generated clientset.\n"),
|
||||||
// GeneratorFunc returns a list of generators. Each generator generates a
|
// GeneratorsFunc returns a list of generators. Each generator generates a
|
||||||
// single file.
|
// single file.
|
||||||
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
|
GeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {
|
||||||
generators = []generator.Generator{
|
generators = []generator.Generator{
|
||||||
// Always generate a "doc.go" file.
|
// Always generate a "doc.go" file.
|
||||||
generator.DefaultGen{OptionalName: "doc"},
|
generator.DefaultGen{OptionalName: "doc"},
|
||||||
|
@ -36,17 +36,15 @@ func PackageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, cli
|
|||||||
outputPkg := filepath.Join(clientsetPkg, subdir, "fake")
|
outputPkg := filepath.Join(clientsetPkg, subdir, "fake")
|
||||||
realClientPkg := filepath.Join(clientsetPkg, subdir)
|
realClientPkg := filepath.Join(clientsetPkg, subdir)
|
||||||
|
|
||||||
return &generator.DefaultPackage{
|
return &generator.SimplePackage{
|
||||||
PackageName: "fake",
|
PkgName: "fake",
|
||||||
PackagePath: outputPkg,
|
PkgPath: outputPkg,
|
||||||
Source: outputDir,
|
PkgDir: outputDir,
|
||||||
HeaderText: boilerplate,
|
HeaderComment: boilerplate,
|
||||||
PackageDocumentation: []byte(
|
PkgDocComment: []byte("// Package fake has the automatically generated clients.\n"),
|
||||||
`// Package fake has the automatically generated clients.
|
// GeneratorsFunc returns a list of generators. Each generator makes a
|
||||||
`),
|
|
||||||
// GeneratorFunc returns a list of generators. Each generator makes a
|
|
||||||
// single file.
|
// single file.
|
||||||
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
|
GeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {
|
||||||
generators = []generator.Generator{
|
generators = []generator.Generator{
|
||||||
// Always generate a "doc.go" file.
|
// Always generate a "doc.go" file.
|
||||||
generator.DefaultGen{OptionalName: "doc"},
|
generator.DefaultGen{OptionalName: "doc"},
|
||||||
@ -90,19 +88,17 @@ func PackageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, cli
|
|||||||
}
|
}
|
||||||
|
|
||||||
func PackageForClientset(customArgs *clientgenargs.CustomArgs, clientsetDir, clientsetPkg string, groupGoNames map[clientgentypes.GroupVersion]string, boilerplate []byte) generator.Package {
|
func PackageForClientset(customArgs *clientgenargs.CustomArgs, clientsetDir, clientsetPkg string, groupGoNames map[clientgentypes.GroupVersion]string, boilerplate []byte) generator.Package {
|
||||||
return &generator.DefaultPackage{
|
return &generator.SimplePackage{
|
||||||
// TODO: we'll generate fake clientset for different release in the future.
|
// TODO: we'll generate fake clientset for different release in the future.
|
||||||
// Package name and path are hard coded for now.
|
// Package name and path are hard coded for now.
|
||||||
PackageName: "fake",
|
PkgName: "fake",
|
||||||
PackagePath: filepath.Join(clientsetPkg, "fake"),
|
PkgPath: filepath.Join(clientsetPkg, "fake"),
|
||||||
Source: filepath.Join(clientsetDir, "fake"),
|
PkgDir: filepath.Join(clientsetDir, "fake"),
|
||||||
HeaderText: boilerplate,
|
HeaderComment: boilerplate,
|
||||||
PackageDocumentation: []byte(
|
PkgDocComment: []byte("// This package has the automatically generated fake clientset.\n"),
|
||||||
`// This package has the automatically generated fake clientset.
|
// GeneratorsFunc returns a list of generators. Each generator generates a
|
||||||
`),
|
|
||||||
// GeneratorFunc returns a list of generators. Each generator generates a
|
|
||||||
// single file.
|
// single file.
|
||||||
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
|
GeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {
|
||||||
generators = []generator.Generator{
|
generators = []generator.Generator{
|
||||||
// Always generate a "doc.go" file.
|
// Always generate a "doc.go" file.
|
||||||
generator.DefaultGen{OptionalName: "doc"},
|
generator.DefaultGen{OptionalName: "doc"},
|
||||||
|
@ -331,19 +331,19 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
|
|||||||
}
|
}
|
||||||
|
|
||||||
packages = append(packages,
|
packages = append(packages,
|
||||||
&generator.DefaultPackage{
|
&generator.SimplePackage{
|
||||||
PackageName: filepath.Base(pkg.Path),
|
PkgName: filepath.Base(pkg.Path),
|
||||||
PackagePath: pkg.Path,
|
PkgPath: pkg.Path,
|
||||||
Source: pkg.SourcePath, // output pkg is the same as the input
|
PkgDir: pkg.SourcePath, // output pkg is the same as the input
|
||||||
HeaderText: header,
|
HeaderComment: header,
|
||||||
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
|
FilterFunc: func(c *generator.Context, t *types.Type) bool {
|
||||||
|
return t.Name.Package == typesPkg.Path
|
||||||
|
},
|
||||||
|
GeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {
|
||||||
return []generator.Generator{
|
return []generator.Generator{
|
||||||
NewGenConversion(arguments.OutputFileBaseName, typesPkg.Path, pkg.Path, manualConversions, pkgToPeers[pkg.Path], unsafeEquality),
|
NewGenConversion(arguments.OutputFileBaseName, typesPkg.Path, pkg.Path, manualConversions, pkgToPeers[pkg.Path], unsafeEquality),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
FilterFunc: func(c *generator.Context, t *types.Type) bool {
|
|
||||||
return t.Name.Package == typesPkg.Path
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -195,8 +195,8 @@ func Run(g *Generator) {
|
|||||||
pkg := c.Universe[input]
|
pkg := c.Universe[input]
|
||||||
protopkg := newProtobufPackage(pkg.Path, pkg.SourcePath, mod.name, mod.allTypes, omitTypes)
|
protopkg := newProtobufPackage(pkg.Path, pkg.SourcePath, mod.name, mod.allTypes, omitTypes)
|
||||||
header := append([]byte{}, boilerplate...)
|
header := append([]byte{}, boilerplate...)
|
||||||
header = append(header, protopkg.HeaderText...)
|
header = append(header, protopkg.HeaderComment...)
|
||||||
protopkg.HeaderText = header
|
protopkg.HeaderComment = header
|
||||||
protobufNames.Add(protopkg)
|
protobufNames.Add(protopkg)
|
||||||
if mod.output {
|
if mod.output {
|
||||||
outputPackages = append(outputPackages, protopkg)
|
outputPackages = append(outputPackages, protopkg)
|
||||||
@ -291,7 +291,7 @@ func Run(g *Generator) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(strings.Join(cmd.Args, " "))
|
log.Println(strings.Join(cmd.Args, " "))
|
||||||
log.Println(string(out))
|
log.Println(string(out))
|
||||||
log.Fatalf("Unable to run protoc on %s: %v", p.PackageName, err)
|
log.Fatalf("Unable to run protoc on %s: %v", p.Name(), err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if g.SkipGeneratedRewrite {
|
if g.SkipGeneratedRewrite {
|
||||||
@ -312,7 +312,7 @@ func Run(g *Generator) {
|
|||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(strings.Join(cmd.Args, " "))
|
log.Println(strings.Join(cmd.Args, " "))
|
||||||
log.Fatalf("Unable to rewrite imports for %s: %v", p.PackageName, err)
|
log.Fatalf("Unable to rewrite imports for %s: %v", p.Name(), err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// format and simplify the generated file
|
// format and simplify the generated file
|
||||||
@ -323,7 +323,7 @@ func Run(g *Generator) {
|
|||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(strings.Join(cmd.Args, " "))
|
log.Println(strings.Join(cmd.Args, " "))
|
||||||
log.Fatalf("Unable to apply gofmt for %s: %v", p.PackageName, err)
|
log.Fatalf("Unable to apply gofmt for %s: %v", p.Name(), err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -349,7 +349,7 @@ func Run(g *Generator) {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
pattern := filepath.Join(g.OutputBase, p.PackagePath, "*.go")
|
pattern := filepath.Join(g.OutputBase, p.Path(), "*.go")
|
||||||
files, err := filepath.Glob(pattern)
|
files, err := filepath.Glob(pattern)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("Can't glob pattern %q: %v", pattern, err)
|
log.Fatalf("Can't glob pattern %q: %v", pattern, err)
|
||||||
@ -369,13 +369,13 @@ func Run(g *Generator) {
|
|||||||
func deps(c *generator.Context, pkgs []*protobufPackage) map[string][]string {
|
func deps(c *generator.Context, pkgs []*protobufPackage) map[string][]string {
|
||||||
ret := map[string][]string{}
|
ret := map[string][]string{}
|
||||||
for _, p := range pkgs {
|
for _, p := range pkgs {
|
||||||
pkg, ok := c.Universe[p.PackagePath]
|
pkg, ok := c.Universe[p.Path()]
|
||||||
if !ok {
|
if !ok {
|
||||||
log.Fatalf("Unrecognized package: %s", p.PackagePath)
|
log.Fatalf("Unrecognized package: %s", p.Path())
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, d := range pkg.Imports {
|
for _, d := range pkg.Imports {
|
||||||
ret[p.PackagePath] = append(ret[p.PackagePath], d.Path)
|
ret[p.Path()] = append(ret[p.Path()], d.Path)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ret
|
return ret
|
||||||
@ -460,7 +460,7 @@ func (o positionOrder) Len() int {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (o positionOrder) Less(i, j int) bool {
|
func (o positionOrder) Less(i, j int) bool {
|
||||||
return o.pos[o.elements[i].PackagePath] < o.pos[o.elements[j].PackagePath]
|
return o.pos[o.elements[i].Path()] < o.pos[o.elements[j].Path()]
|
||||||
}
|
}
|
||||||
|
|
||||||
func (o positionOrder) Swap(i, j int) {
|
func (o positionOrder) Swap(i, j int) {
|
||||||
|
@ -60,8 +60,8 @@ func (n *protobufNamer) Name(t *types.Type) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (n *protobufNamer) Add(p *protobufPackage) {
|
func (n *protobufNamer) Add(p *protobufPackage) {
|
||||||
if _, ok := n.packagesByPath[p.PackagePath]; !ok {
|
if _, ok := n.packagesByPath[p.Path()]; !ok {
|
||||||
n.packagesByPath[p.PackagePath] = p
|
n.packagesByPath[p.Path()] = p
|
||||||
n.packages = append(n.packages, p)
|
n.packages = append(n.packages, p)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -70,7 +70,7 @@ func (n *protobufNamer) GoNameToProtoName(name types.Name) types.Name {
|
|||||||
if p, ok := n.packagesByPath[name.Package]; ok {
|
if p, ok := n.packagesByPath[name.Package]; ok {
|
||||||
return types.Name{
|
return types.Name{
|
||||||
Name: name.Name,
|
Name: name.Name,
|
||||||
Package: p.PackageName,
|
Package: p.Name(),
|
||||||
Path: p.ImportPath(),
|
Path: p.ImportPath(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -78,7 +78,7 @@ func (n *protobufNamer) GoNameToProtoName(name types.Name) types.Name {
|
|||||||
if _, ok := p.FilterTypes[name]; ok {
|
if _, ok := p.FilterTypes[name]; ok {
|
||||||
return types.Name{
|
return types.Name{
|
||||||
Name: name.Name,
|
Name: name.Name,
|
||||||
Package: p.PackageName,
|
Package: p.Name(),
|
||||||
Path: p.ImportPath(),
|
Path: p.ImportPath(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -109,7 +109,7 @@ func assignGoTypeToProtoPackage(p *protobufPackage, t *types.Type, local, global
|
|||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if t.Name.Package == p.PackagePath {
|
if t.Name.Package == p.Path() {
|
||||||
// Associate types only to their own package
|
// Associate types only to their own package
|
||||||
global[t.Name] = p
|
global[t.Name] = p
|
||||||
}
|
}
|
||||||
@ -175,7 +175,7 @@ func (n *protobufNamer) AssignTypesToPackages(c *generator.Context) error {
|
|||||||
optional := make(map[types.Name]struct{})
|
optional := make(map[types.Name]struct{})
|
||||||
p.Imports = NewImportTracker(p.ProtoTypeName())
|
p.Imports = NewImportTracker(p.ProtoTypeName())
|
||||||
for _, t := range c.Order {
|
for _, t := range c.Order {
|
||||||
if t.Name.Package != p.PackagePath {
|
if t.Name.Package != p.Path() {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if !isTypeApplicableToProtobuf(t) {
|
if !isTypeApplicableToProtobuf(t) {
|
||||||
|
@ -31,31 +31,25 @@ import (
|
|||||||
|
|
||||||
func newProtobufPackage(packagePath, packageDir, packageName string, generateAll bool, omitFieldTypes map[types.Name]struct{}) *protobufPackage {
|
func newProtobufPackage(packagePath, packageDir, packageName string, generateAll bool, omitFieldTypes map[types.Name]struct{}) *protobufPackage {
|
||||||
pkg := &protobufPackage{
|
pkg := &protobufPackage{
|
||||||
DefaultPackage: generator.DefaultPackage{
|
SimplePackage: generator.SimplePackage{
|
||||||
// The protobuf package name (foo.bar.baz)
|
// The protobuf package name (foo.bar.baz)
|
||||||
PackageName: packageName,
|
PkgName: packageName,
|
||||||
PackagePath: packagePath,
|
PkgPath: packagePath,
|
||||||
Source: packageDir,
|
PkgDir: packageDir,
|
||||||
HeaderText: []byte(
|
HeaderComment: []byte("\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\n"),
|
||||||
`
|
PkgDocComment: []byte(fmt.Sprintf("// Package %s is an autogenerated protobuf IDL.\n", packageName)),
|
||||||
// This file was autogenerated by go-to-protobuf. Do not edit it manually!
|
|
||||||
|
|
||||||
`),
|
|
||||||
PackageDocumentation: []byte(fmt.Sprintf(
|
|
||||||
`// Package %s is an autogenerated protobuf IDL.
|
|
||||||
`, packageName)),
|
|
||||||
},
|
},
|
||||||
GenerateAll: generateAll,
|
GenerateAll: generateAll,
|
||||||
OmitFieldTypes: omitFieldTypes,
|
OmitFieldTypes: omitFieldTypes,
|
||||||
}
|
}
|
||||||
pkg.FilterFunc = pkg.filterFunc
|
pkg.FilterFunc = pkg.filterFunc
|
||||||
pkg.GeneratorFunc = pkg.generatorFunc
|
pkg.GeneratorsFunc = pkg.generatorsFunc
|
||||||
return pkg
|
return pkg
|
||||||
}
|
}
|
||||||
|
|
||||||
// protobufPackage contains the protobuf implementation of Package.
|
// protobufPackage contains the protobuf implementation of Package.
|
||||||
type protobufPackage struct {
|
type protobufPackage struct {
|
||||||
generator.DefaultPackage
|
generator.SimplePackage
|
||||||
|
|
||||||
// If true, generate protobuf serializations for all public types.
|
// If true, generate protobuf serializations for all public types.
|
||||||
// If false, only generate protobuf serializations for structs that
|
// If false, only generate protobuf serializations for structs that
|
||||||
@ -87,7 +81,7 @@ type protobufPackage struct {
|
|||||||
|
|
||||||
func (p *protobufPackage) Clean() error {
|
func (p *protobufPackage) Clean() error {
|
||||||
for _, s := range []string{p.ImportPath(), p.OutputPath()} {
|
for _, s := range []string{p.ImportPath(), p.OutputPath()} {
|
||||||
if err := os.Remove(filepath.Join(p.Source, filepath.Base(s))); err != nil && !os.IsNotExist(err) {
|
if err := os.Remove(filepath.Join(p.SourcePath(), filepath.Base(s))); err != nil && !os.IsNotExist(err) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -175,7 +169,7 @@ func (p *protobufPackage) ExtractGeneratedType(t *ast.TypeSpec) bool {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *protobufPackage) generatorFunc(c *generator.Context) []generator.Generator {
|
func (p *protobufPackage) generatorsFunc(c *generator.Context) []generator.Generator {
|
||||||
generators := []generator.Generator{}
|
generators := []generator.Generator{}
|
||||||
|
|
||||||
p.Imports.AddNullable()
|
p.Imports.AddNullable()
|
||||||
@ -184,8 +178,8 @@ func (p *protobufPackage) generatorFunc(c *generator.Context) []generator.Genera
|
|||||||
DefaultGen: generator.DefaultGen{
|
DefaultGen: generator.DefaultGen{
|
||||||
OptionalName: "generated",
|
OptionalName: "generated",
|
||||||
},
|
},
|
||||||
localPackage: types.Name{Package: p.PackageName, Path: p.PackagePath},
|
localPackage: types.Name{Package: p.Name(), Path: p.Path()},
|
||||||
localGoPackage: types.Name{Package: p.PackagePath, Name: p.GoPackageName()},
|
localGoPackage: types.Name{Package: p.Path(), Name: p.GoPackageName()},
|
||||||
imports: p.Imports,
|
imports: p.Imports,
|
||||||
generateAll: p.GenerateAll,
|
generateAll: p.GenerateAll,
|
||||||
omitGogo: p.OmitGogo,
|
omitGogo: p.OmitGogo,
|
||||||
@ -195,15 +189,15 @@ func (p *protobufPackage) generatorFunc(c *generator.Context) []generator.Genera
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (p *protobufPackage) GoPackageName() string {
|
func (p *protobufPackage) GoPackageName() string {
|
||||||
return filepath.Base(p.PackagePath)
|
return filepath.Base(p.Path())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *protobufPackage) ImportPath() string {
|
func (p *protobufPackage) ImportPath() string {
|
||||||
return filepath.Join(p.PackagePath, "generated.proto")
|
return filepath.Join(p.Path(), "generated.proto")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *protobufPackage) OutputPath() string {
|
func (p *protobufPackage) OutputPath() string {
|
||||||
return filepath.Join(p.PackagePath, "generated.pb.go")
|
return filepath.Join(p.Path(), "generated.pb.go")
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -249,12 +249,12 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
|
|||||||
|
|
||||||
func factoryPackage(outputDirBase, outputPkgBase string, boilerplate []byte, groupGoNames, pluralExceptions map[string]string, groupVersions map[string]clientgentypes.GroupVersions, clientSetPackage string,
|
func factoryPackage(outputDirBase, outputPkgBase string, boilerplate []byte, groupGoNames, pluralExceptions map[string]string, groupVersions map[string]clientgentypes.GroupVersions, clientSetPackage string,
|
||||||
typesForGroupVersion map[clientgentypes.GroupVersion][]*types.Type) generator.Package {
|
typesForGroupVersion map[clientgentypes.GroupVersion][]*types.Type) generator.Package {
|
||||||
return &generator.DefaultPackage{
|
return &generator.SimplePackage{
|
||||||
PackageName: filepath.Base(outputDirBase),
|
PkgName: filepath.Base(outputDirBase),
|
||||||
PackagePath: outputPkgBase,
|
PkgPath: outputPkgBase,
|
||||||
Source: outputDirBase,
|
PkgDir: outputDirBase,
|
||||||
HeaderText: boilerplate,
|
HeaderComment: boilerplate,
|
||||||
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
|
GeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {
|
||||||
generators = append(generators, &factoryGenerator{
|
generators = append(generators, &factoryGenerator{
|
||||||
DefaultGen: generator.DefaultGen{
|
DefaultGen: generator.DefaultGen{
|
||||||
OptionalName: "factory",
|
OptionalName: "factory",
|
||||||
@ -288,12 +288,12 @@ func factoryInterfacePackage(outputDirBase, outputPkgBase string, boilerplate []
|
|||||||
outputDir := subdirForInternalInterfaces(outputDirBase)
|
outputDir := subdirForInternalInterfaces(outputDirBase)
|
||||||
outputPkg := subdirForInternalInterfaces(outputPkgBase)
|
outputPkg := subdirForInternalInterfaces(outputPkgBase)
|
||||||
|
|
||||||
return &generator.DefaultPackage{
|
return &generator.SimplePackage{
|
||||||
PackageName: filepath.Base(outputDir),
|
PkgName: filepath.Base(outputDir),
|
||||||
PackagePath: outputPkg,
|
PkgPath: outputPkg,
|
||||||
Source: outputDir,
|
PkgDir: outputDir,
|
||||||
HeaderText: boilerplate,
|
HeaderComment: boilerplate,
|
||||||
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
|
GeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {
|
||||||
generators = append(generators, &factoryInterfaceGenerator{
|
generators = append(generators, &factoryInterfaceGenerator{
|
||||||
DefaultGen: generator.DefaultGen{
|
DefaultGen: generator.DefaultGen{
|
||||||
OptionalName: "factory_interfaces",
|
OptionalName: "factory_interfaces",
|
||||||
@ -313,12 +313,12 @@ func groupPackage(outputDirBase, outputPackageBase string, groupVersions clientg
|
|||||||
outputPkg := filepath.Join(outputPackageBase, groupVersions.PackageName)
|
outputPkg := filepath.Join(outputPackageBase, groupVersions.PackageName)
|
||||||
groupPkgName := strings.Split(string(groupVersions.PackageName), ".")[0]
|
groupPkgName := strings.Split(string(groupVersions.PackageName), ".")[0]
|
||||||
|
|
||||||
return &generator.DefaultPackage{
|
return &generator.SimplePackage{
|
||||||
PackageName: groupPkgName,
|
PkgName: groupPkgName,
|
||||||
PackagePath: outputPkg,
|
PkgPath: outputPkg,
|
||||||
Source: outputDir,
|
PkgDir: outputDir,
|
||||||
HeaderText: boilerplate,
|
HeaderComment: boilerplate,
|
||||||
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
|
GeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {
|
||||||
generators = append(generators, &groupInterfaceGenerator{
|
generators = append(generators, &groupInterfaceGenerator{
|
||||||
DefaultGen: generator.DefaultGen{
|
DefaultGen: generator.DefaultGen{
|
||||||
OptionalName: "interface",
|
OptionalName: "interface",
|
||||||
@ -342,12 +342,12 @@ func versionPackage(outputDirBase, outputPkgBase string, groupPkgName string, gv
|
|||||||
outputDir := filepath.Join(outputDirBase, subdir)
|
outputDir := filepath.Join(outputDirBase, subdir)
|
||||||
outputPkg := filepath.Join(outputPkgBase, subdir)
|
outputPkg := filepath.Join(outputPkgBase, subdir)
|
||||||
|
|
||||||
return &generator.DefaultPackage{
|
return &generator.SimplePackage{
|
||||||
PackageName: strings.ToLower(gv.Version.NonEmpty()),
|
PkgName: strings.ToLower(gv.Version.NonEmpty()),
|
||||||
PackagePath: outputPkg,
|
PkgPath: outputPkg,
|
||||||
Source: outputDir,
|
PkgDir: outputDir,
|
||||||
HeaderText: boilerplate,
|
HeaderComment: boilerplate,
|
||||||
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
|
GeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {
|
||||||
generators = append(generators, &versionInterfaceGenerator{
|
generators = append(generators, &versionInterfaceGenerator{
|
||||||
DefaultGen: generator.DefaultGen{
|
DefaultGen: generator.DefaultGen{
|
||||||
OptionalName: "interface",
|
OptionalName: "interface",
|
||||||
|
@ -123,12 +123,16 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
|
|||||||
subdir := filepath.Join(groupPackageName, strings.ToLower(gv.Version.NonEmpty()))
|
subdir := filepath.Join(groupPackageName, strings.ToLower(gv.Version.NonEmpty()))
|
||||||
outputDir := filepath.Join(arguments.OutputBase, subdir)
|
outputDir := filepath.Join(arguments.OutputBase, subdir)
|
||||||
outputPkg := filepath.Join(customArgs.OutputPackage, subdir)
|
outputPkg := filepath.Join(customArgs.OutputPackage, subdir)
|
||||||
packageList = append(packageList, &generator.DefaultPackage{
|
packageList = append(packageList, &generator.SimplePackage{
|
||||||
PackageName: strings.ToLower(gv.Version.NonEmpty()),
|
PkgName: strings.ToLower(gv.Version.NonEmpty()),
|
||||||
PackagePath: outputPkg,
|
PkgPath: outputPkg,
|
||||||
Source: outputDir,
|
PkgDir: outputDir,
|
||||||
HeaderText: boilerplate,
|
HeaderComment: boilerplate,
|
||||||
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
|
FilterFunc: func(c *generator.Context, t *types.Type) bool {
|
||||||
|
tags := util.MustParseClientGenTags(append(t.SecondClosestCommentLines, t.CommentLines...))
|
||||||
|
return tags.GenerateClient && tags.HasVerb("list") && tags.HasVerb("get")
|
||||||
|
},
|
||||||
|
GeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {
|
||||||
generators = append(generators, &expansionGenerator{
|
generators = append(generators, &expansionGenerator{
|
||||||
DefaultGen: generator.DefaultGen{
|
DefaultGen: generator.DefaultGen{
|
||||||
OptionalName: "expansion_generated",
|
OptionalName: "expansion_generated",
|
||||||
@ -152,10 +156,6 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
|
|||||||
}
|
}
|
||||||
return generators
|
return generators
|
||||||
},
|
},
|
||||||
FilterFunc: func(c *generator.Context, t *types.Type) bool {
|
|
||||||
tags := util.MustParseClientGenTags(append(t.SecondClosestCommentLines, t.CommentLines...))
|
|
||||||
return tags.GenerateClient && tags.HasVerb("list") && tags.HasVerb("get")
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -231,19 +231,19 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
|
|||||||
|
|
||||||
if pkgNeedsGeneration {
|
if pkgNeedsGeneration {
|
||||||
packages = append(packages,
|
packages = append(packages,
|
||||||
&generator.DefaultPackage{
|
&generator.SimplePackage{
|
||||||
PackageName: strings.Split(filepath.Base(pkg.Path), ".")[0],
|
PkgName: strings.Split(filepath.Base(pkg.Path), ".")[0],
|
||||||
PackagePath: pkg.Path,
|
PkgPath: pkg.Path,
|
||||||
Source: pkg.SourcePath, // output pkg is the same as the input
|
PkgDir: pkg.SourcePath, // output pkg is the same as the input
|
||||||
HeaderText: header,
|
HeaderComment: header,
|
||||||
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
|
FilterFunc: func(c *generator.Context, t *types.Type) bool {
|
||||||
|
return t.Name.Package == pkg.Path
|
||||||
|
},
|
||||||
|
GeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {
|
||||||
return []generator.Generator{
|
return []generator.Generator{
|
||||||
NewPrereleaseLifecycleGen(arguments.OutputFileBaseName, pkg.Path),
|
NewPrereleaseLifecycleGen(arguments.OutputFileBaseName, pkg.Path),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
FilterFunc: func(c *generator.Context, t *types.Type) bool {
|
|
||||||
return t.Name.Package == pkg.Path
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -100,12 +100,12 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
|
|||||||
}
|
}
|
||||||
|
|
||||||
packages = append(packages,
|
packages = append(packages,
|
||||||
&generator.DefaultPackage{
|
&generator.SimplePackage{
|
||||||
PackageName: pkg.Name,
|
PkgName: pkg.Name,
|
||||||
PackagePath: pkg.Path, // output to same pkg as input
|
PkgPath: pkg.Path, // output to same pkg as input
|
||||||
Source: pkg.SourcePath, // output to same pkg as input
|
PkgDir: pkg.SourcePath, // output to same pkg as input
|
||||||
HeaderText: boilerplate,
|
HeaderComment: boilerplate,
|
||||||
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
|
GeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {
|
||||||
return []generator.Generator{
|
return []generator.Generator{
|
||||||
®isterExternalGenerator{
|
®isterExternalGenerator{
|
||||||
DefaultGen: generator.DefaultGen{
|
DefaultGen: generator.DefaultGen{
|
||||||
|
Loading…
Reference in New Issue
Block a user