Rename DefaultPackage to SimplePackage

This commit is contained in:
Tim Hockin 2024-01-15 16:06:38 -08:00
parent bd31265d23
commit b2832697d5
No known key found for this signature in database
11 changed files with 149 additions and 159 deletions

View File

@ -161,16 +161,16 @@ func typeName(t *types.Type) string {
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)
outputPkg := filepath.Join(outputPkgBase, pkgSubdir)
return &generator.DefaultPackage{
PackageName: gv.Version.PackageName(),
PackagePath: outputPkg,
Source: outputDir,
HeaderText: boilerplate,
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
return &generator.SimplePackage{
PkgName: gv.Version.PackageName(),
PkgPath: outputPkg,
PkgDir: outputDir,
HeaderComment: boilerplate,
GeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {
for _, toGenerate := range typesToGenerate {
var openAPIType *string
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 {
return &generator.DefaultPackage{
PackageName: filepath.Base(outputPkgBase),
PackagePath: outputPkgBase,
Source: outputDirBase,
HeaderText: boilerplate,
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
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.SimplePackage{
PkgName: filepath.Base(outputPkgBase),
PkgPath: outputPkgBase,
PkgDir: outputDirBase,
HeaderComment: boilerplate,
GeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {
generators = append(generators, &utilGenerator{
DefaultGen: generator.DefaultGen{
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")
outputPkg := filepath.Join(outputPkgBase, "internal")
return &generator.DefaultPackage{
PackageName: filepath.Base(outputPkg),
PackagePath: outputPkg,
Source: outputDir,
HeaderText: boilerplate,
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
return &generator.SimplePackage{
PkgName: filepath.Base(outputPkg),
PkgPath: outputPkg,
PkgDir: outputDir,
HeaderComment: boilerplate,
GeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {
generators = append(generators, &internalGenerator{
DefaultGen: generator.DefaultGen{
OptionalName: "internal",

View File

@ -132,15 +132,15 @@ func packageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, cli
gvDir := filepath.Join(clientsetDir, subdir)
gvPkg := filepath.Join(clientsetPkg, subdir)
return &generator.DefaultPackage{
PackageName: strings.ToLower(gv.Version.NonEmpty()),
PackagePath: gvPkg,
Source: gvDir,
HeaderText: boilerplate,
PackageDocumentation: []byte("// This package has the automatically generated typed clients.\n"),
// GeneratorFunc returns a list of generators. Each generator makes a
return &generator.SimplePackage{
PkgName: strings.ToLower(gv.Version.NonEmpty()),
PkgPath: gvPkg,
PkgDir: gvDir,
HeaderComment: boilerplate,
PkgDocComment: []byte("// This package has the automatically generated typed clients.\n"),
// GeneratorsFunc returns a list of generators. Each generator makes a
// single file.
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
GeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {
generators = []generator.Generator{
// Always generate a "doc.go" file.
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 {
return &generator.DefaultPackage{
PackageName: customArgs.ClientsetName,
PackagePath: clientsetPkg,
Source: clientsetDir,
HeaderText: boilerplate,
// GeneratorFunc returns a list of generators. Each generator generates a
return &generator.SimplePackage{
PkgName: customArgs.ClientsetName,
PkgPath: clientsetPkg,
PkgDir: clientsetDir,
HeaderComment: boilerplate,
// GeneratorsFunc returns a list of generators. Each generator generates a
// single file.
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
GeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {
generators = []generator.Generator{
&genClientset{
DefaultGen: generator.DefaultGen{
@ -237,15 +237,15 @@ NextGroup:
}
}
return &generator.DefaultPackage{
PackageName: "scheme",
PackagePath: schemePkg,
Source: schemeDir,
HeaderText: boilerplate,
PackageDocumentation: []byte("// This package contains the scheme of the automatically generated clientset.\n"),
// GeneratorFunc returns a list of generators. Each generator generates a
return &generator.SimplePackage{
PkgName: "scheme",
PkgPath: schemePkg,
PkgDir: schemeDir,
HeaderComment: boilerplate,
PkgDocComment: []byte("// This package contains the scheme of the automatically generated clientset.\n"),
// GeneratorsFunc returns a list of generators. Each generator generates a
// single file.
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
GeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {
generators = []generator.Generator{
// Always generate a "doc.go" file.
generator.DefaultGen{OptionalName: "doc"},

View File

@ -36,17 +36,15 @@ func PackageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, cli
outputPkg := filepath.Join(clientsetPkg, subdir, "fake")
realClientPkg := filepath.Join(clientsetPkg, subdir)
return &generator.DefaultPackage{
PackageName: "fake",
PackagePath: outputPkg,
Source: outputDir,
HeaderText: boilerplate,
PackageDocumentation: []byte(
`// Package fake has the automatically generated clients.
`),
// GeneratorFunc returns a list of generators. Each generator makes a
return &generator.SimplePackage{
PkgName: "fake",
PkgPath: outputPkg,
PkgDir: outputDir,
HeaderComment: boilerplate,
PkgDocComment: []byte("// Package fake has the automatically generated clients.\n"),
// GeneratorsFunc returns a list of generators. Each generator makes a
// single file.
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
GeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {
generators = []generator.Generator{
// Always generate a "doc.go" file.
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 {
return &generator.DefaultPackage{
return &generator.SimplePackage{
// TODO: we'll generate fake clientset for different release in the future.
// Package name and path are hard coded for now.
PackageName: "fake",
PackagePath: filepath.Join(clientsetPkg, "fake"),
Source: filepath.Join(clientsetDir, "fake"),
HeaderText: boilerplate,
PackageDocumentation: []byte(
`// This package has the automatically generated fake clientset.
`),
// GeneratorFunc returns a list of generators. Each generator generates a
PkgName: "fake",
PkgPath: filepath.Join(clientsetPkg, "fake"),
PkgDir: filepath.Join(clientsetDir, "fake"),
HeaderComment: boilerplate,
PkgDocComment: []byte("// This package has the automatically generated fake clientset.\n"),
// GeneratorsFunc returns a list of generators. Each generator generates a
// single file.
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
GeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {
generators = []generator.Generator{
// Always generate a "doc.go" file.
generator.DefaultGen{OptionalName: "doc"},

View File

@ -331,19 +331,19 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
}
packages = append(packages,
&generator.DefaultPackage{
PackageName: filepath.Base(pkg.Path),
PackagePath: pkg.Path,
Source: pkg.SourcePath, // output pkg is the same as the input
HeaderText: header,
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
&generator.SimplePackage{
PkgName: filepath.Base(pkg.Path),
PkgPath: pkg.Path,
PkgDir: pkg.SourcePath, // output pkg is the same as the input
HeaderComment: header,
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{
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
},
})
}

View File

@ -195,8 +195,8 @@ func Run(g *Generator) {
pkg := c.Universe[input]
protopkg := newProtobufPackage(pkg.Path, pkg.SourcePath, mod.name, mod.allTypes, omitTypes)
header := append([]byte{}, boilerplate...)
header = append(header, protopkg.HeaderText...)
protopkg.HeaderText = header
header = append(header, protopkg.HeaderComment...)
protopkg.HeaderComment = header
protobufNames.Add(protopkg)
if mod.output {
outputPackages = append(outputPackages, protopkg)
@ -291,7 +291,7 @@ func Run(g *Generator) {
if err != nil {
log.Println(strings.Join(cmd.Args, " "))
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 {
@ -312,7 +312,7 @@ func Run(g *Generator) {
}
if err != nil {
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
@ -323,7 +323,7 @@ func Run(g *Generator) {
}
if err != nil {
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
}
pattern := filepath.Join(g.OutputBase, p.PackagePath, "*.go")
pattern := filepath.Join(g.OutputBase, p.Path(), "*.go")
files, err := filepath.Glob(pattern)
if err != nil {
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 {
ret := map[string][]string{}
for _, p := range pkgs {
pkg, ok := c.Universe[p.PackagePath]
pkg, ok := c.Universe[p.Path()]
if !ok {
log.Fatalf("Unrecognized package: %s", p.PackagePath)
log.Fatalf("Unrecognized package: %s", p.Path())
}
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
@ -460,7 +460,7 @@ func (o positionOrder) Len() int {
}
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) {

View File

@ -60,8 +60,8 @@ func (n *protobufNamer) Name(t *types.Type) string {
}
func (n *protobufNamer) Add(p *protobufPackage) {
if _, ok := n.packagesByPath[p.PackagePath]; !ok {
n.packagesByPath[p.PackagePath] = p
if _, ok := n.packagesByPath[p.Path()]; !ok {
n.packagesByPath[p.Path()] = 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 {
return types.Name{
Name: name.Name,
Package: p.PackageName,
Package: p.Name(),
Path: p.ImportPath(),
}
}
@ -78,7 +78,7 @@ func (n *protobufNamer) GoNameToProtoName(name types.Name) types.Name {
if _, ok := p.FilterTypes[name]; ok {
return types.Name{
Name: name.Name,
Package: p.PackageName,
Package: p.Name(),
Path: p.ImportPath(),
}
}
@ -109,7 +109,7 @@ func assignGoTypeToProtoPackage(p *protobufPackage, t *types.Type, local, global
}
return
}
if t.Name.Package == p.PackagePath {
if t.Name.Package == p.Path() {
// Associate types only to their own package
global[t.Name] = p
}
@ -175,7 +175,7 @@ func (n *protobufNamer) AssignTypesToPackages(c *generator.Context) error {
optional := make(map[types.Name]struct{})
p.Imports = NewImportTracker(p.ProtoTypeName())
for _, t := range c.Order {
if t.Name.Package != p.PackagePath {
if t.Name.Package != p.Path() {
continue
}
if !isTypeApplicableToProtobuf(t) {

View File

@ -31,31 +31,25 @@ import (
func newProtobufPackage(packagePath, packageDir, packageName string, generateAll bool, omitFieldTypes map[types.Name]struct{}) *protobufPackage {
pkg := &protobufPackage{
DefaultPackage: generator.DefaultPackage{
SimplePackage: generator.SimplePackage{
// The protobuf package name (foo.bar.baz)
PackageName: packageName,
PackagePath: packagePath,
Source: packageDir,
HeaderText: []byte(
`
// 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)),
PkgName: packageName,
PkgPath: packagePath,
PkgDir: packageDir,
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)),
},
GenerateAll: generateAll,
OmitFieldTypes: omitFieldTypes,
}
pkg.FilterFunc = pkg.filterFunc
pkg.GeneratorFunc = pkg.generatorFunc
pkg.GeneratorsFunc = pkg.generatorsFunc
return pkg
}
// protobufPackage contains the protobuf implementation of Package.
type protobufPackage struct {
generator.DefaultPackage
generator.SimplePackage
// If true, generate protobuf serializations for all public types.
// If false, only generate protobuf serializations for structs that
@ -87,7 +81,7 @@ type protobufPackage struct {
func (p *protobufPackage) Clean() error {
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
}
}
@ -175,7 +169,7 @@ func (p *protobufPackage) ExtractGeneratedType(t *ast.TypeSpec) bool {
return true
}
func (p *protobufPackage) generatorFunc(c *generator.Context) []generator.Generator {
func (p *protobufPackage) generatorsFunc(c *generator.Context) []generator.Generator {
generators := []generator.Generator{}
p.Imports.AddNullable()
@ -184,8 +178,8 @@ func (p *protobufPackage) generatorFunc(c *generator.Context) []generator.Genera
DefaultGen: generator.DefaultGen{
OptionalName: "generated",
},
localPackage: types.Name{Package: p.PackageName, Path: p.PackagePath},
localGoPackage: types.Name{Package: p.PackagePath, Name: p.GoPackageName()},
localPackage: types.Name{Package: p.Name(), Path: p.Path()},
localGoPackage: types.Name{Package: p.Path(), Name: p.GoPackageName()},
imports: p.Imports,
generateAll: p.GenerateAll,
omitGogo: p.OmitGogo,
@ -195,15 +189,15 @@ func (p *protobufPackage) generatorFunc(c *generator.Context) []generator.Genera
}
func (p *protobufPackage) GoPackageName() string {
return filepath.Base(p.PackagePath)
return filepath.Base(p.Path())
}
func (p *protobufPackage) ImportPath() string {
return filepath.Join(p.PackagePath, "generated.proto")
return filepath.Join(p.Path(), "generated.proto")
}
func (p *protobufPackage) OutputPath() string {
return filepath.Join(p.PackagePath, "generated.pb.go")
return filepath.Join(p.Path(), "generated.pb.go")
}
var (

View File

@ -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,
typesForGroupVersion map[clientgentypes.GroupVersion][]*types.Type) generator.Package {
return &generator.DefaultPackage{
PackageName: filepath.Base(outputDirBase),
PackagePath: outputPkgBase,
Source: outputDirBase,
HeaderText: boilerplate,
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
return &generator.SimplePackage{
PkgName: filepath.Base(outputDirBase),
PkgPath: outputPkgBase,
PkgDir: outputDirBase,
HeaderComment: boilerplate,
GeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {
generators = append(generators, &factoryGenerator{
DefaultGen: generator.DefaultGen{
OptionalName: "factory",
@ -288,12 +288,12 @@ func factoryInterfacePackage(outputDirBase, outputPkgBase string, boilerplate []
outputDir := subdirForInternalInterfaces(outputDirBase)
outputPkg := subdirForInternalInterfaces(outputPkgBase)
return &generator.DefaultPackage{
PackageName: filepath.Base(outputDir),
PackagePath: outputPkg,
Source: outputDir,
HeaderText: boilerplate,
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
return &generator.SimplePackage{
PkgName: filepath.Base(outputDir),
PkgPath: outputPkg,
PkgDir: outputDir,
HeaderComment: boilerplate,
GeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {
generators = append(generators, &factoryInterfaceGenerator{
DefaultGen: generator.DefaultGen{
OptionalName: "factory_interfaces",
@ -313,12 +313,12 @@ func groupPackage(outputDirBase, outputPackageBase string, groupVersions clientg
outputPkg := filepath.Join(outputPackageBase, groupVersions.PackageName)
groupPkgName := strings.Split(string(groupVersions.PackageName), ".")[0]
return &generator.DefaultPackage{
PackageName: groupPkgName,
PackagePath: outputPkg,
Source: outputDir,
HeaderText: boilerplate,
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
return &generator.SimplePackage{
PkgName: groupPkgName,
PkgPath: outputPkg,
PkgDir: outputDir,
HeaderComment: boilerplate,
GeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {
generators = append(generators, &groupInterfaceGenerator{
DefaultGen: generator.DefaultGen{
OptionalName: "interface",
@ -342,12 +342,12 @@ func versionPackage(outputDirBase, outputPkgBase string, groupPkgName string, gv
outputDir := filepath.Join(outputDirBase, subdir)
outputPkg := filepath.Join(outputPkgBase, subdir)
return &generator.DefaultPackage{
PackageName: strings.ToLower(gv.Version.NonEmpty()),
PackagePath: outputPkg,
Source: outputDir,
HeaderText: boilerplate,
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
return &generator.SimplePackage{
PkgName: strings.ToLower(gv.Version.NonEmpty()),
PkgPath: outputPkg,
PkgDir: outputDir,
HeaderComment: boilerplate,
GeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {
generators = append(generators, &versionInterfaceGenerator{
DefaultGen: generator.DefaultGen{
OptionalName: "interface",

View File

@ -123,12 +123,16 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
subdir := filepath.Join(groupPackageName, strings.ToLower(gv.Version.NonEmpty()))
outputDir := filepath.Join(arguments.OutputBase, subdir)
outputPkg := filepath.Join(customArgs.OutputPackage, subdir)
packageList = append(packageList, &generator.DefaultPackage{
PackageName: strings.ToLower(gv.Version.NonEmpty()),
PackagePath: outputPkg,
Source: outputDir,
HeaderText: boilerplate,
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
packageList = append(packageList, &generator.SimplePackage{
PkgName: strings.ToLower(gv.Version.NonEmpty()),
PkgPath: outputPkg,
PkgDir: outputDir,
HeaderComment: boilerplate,
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{
DefaultGen: generator.DefaultGen{
OptionalName: "expansion_generated",
@ -152,10 +156,6 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
}
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")
},
})
}

View File

@ -231,19 +231,19 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
if pkgNeedsGeneration {
packages = append(packages,
&generator.DefaultPackage{
PackageName: strings.Split(filepath.Base(pkg.Path), ".")[0],
PackagePath: pkg.Path,
Source: pkg.SourcePath, // output pkg is the same as the input
HeaderText: header,
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
&generator.SimplePackage{
PkgName: strings.Split(filepath.Base(pkg.Path), ".")[0],
PkgPath: pkg.Path,
PkgDir: pkg.SourcePath, // output pkg is the same as the input
HeaderComment: header,
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{
NewPrereleaseLifecycleGen(arguments.OutputFileBaseName, pkg.Path),
}
},
FilterFunc: func(c *generator.Context, t *types.Type) bool {
return t.Name.Package == pkg.Path
},
})
}
}

View File

@ -100,12 +100,12 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
}
packages = append(packages,
&generator.DefaultPackage{
PackageName: pkg.Name,
PackagePath: pkg.Path, // output to same pkg as input
Source: pkg.SourcePath, // output to same pkg as input
HeaderText: boilerplate,
GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) {
&generator.SimplePackage{
PkgName: pkg.Name,
PkgPath: pkg.Path, // output to same pkg as input
PkgDir: pkg.SourcePath, // output to same pkg as input
HeaderComment: boilerplate,
GeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {
return []generator.Generator{
&registerExternalGenerator{
DefaultGen: generator.DefaultGen{