mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-11 21:12:07 +00:00
Move OutputFileBase flag to each tool
This commit is contained in:
parent
26a1a13b80
commit
d0dd72b01e
@ -177,7 +177,7 @@ function codegen::deepcopy() {
|
||||
"${gen_deepcopy_bin}" \
|
||||
-v "${KUBE_VERBOSE}" \
|
||||
--go-header-file "${BOILERPLATE_FILENAME}" \
|
||||
--output-file-base "${output_file}" \
|
||||
--output-file "${output_file}" \
|
||||
--bounding-dirs "k8s.io/kubernetes,k8s.io/api" \
|
||||
$(printf -- " -i %s" "${tag_pkgs[@]}") \
|
||||
"$@"
|
||||
@ -309,7 +309,7 @@ function codegen::prerelease() {
|
||||
"${gen_prerelease_bin}" \
|
||||
-v "${KUBE_VERBOSE}" \
|
||||
--go-header-file "${BOILERPLATE_FILENAME}" \
|
||||
--output-file-base "${output_file}" \
|
||||
--output-file "${output_file}" \
|
||||
$(printf -- " -i %s" "${tag_pkgs[@]}") \
|
||||
"$@"
|
||||
|
||||
@ -377,7 +377,7 @@ function codegen::defaults() {
|
||||
"${gen_defaulter_bin}" \
|
||||
-v "${KUBE_VERBOSE}" \
|
||||
--go-header-file "${BOILERPLATE_FILENAME}" \
|
||||
--output-file-base "${output_file}" \
|
||||
--output-file "${output_file}" \
|
||||
$(printf -- " -i %s" "${tag_pkgs[@]}") \
|
||||
"$@"
|
||||
|
||||
@ -456,7 +456,7 @@ function codegen::conversions() {
|
||||
"${gen_conversion_bin}" \
|
||||
-v "${KUBE_VERBOSE}" \
|
||||
--go-header-file "${BOILERPLATE_FILENAME}" \
|
||||
--output-file-base "${output_file}" \
|
||||
--output-file "${output_file}" \
|
||||
$(printf -- " --extra-peer-dirs %s" "${extra_peer_pkgs[@]}") \
|
||||
$(printf -- " -i %s" "${tag_pkgs[@]}") \
|
||||
"$@"
|
||||
@ -551,7 +551,7 @@ function codegen::openapi() {
|
||||
"${gen_openapi_bin}" \
|
||||
-v "${KUBE_VERBOSE}" \
|
||||
--go-header-file "${BOILERPLATE_FILENAME}" \
|
||||
--output-file-base "${output_file}" \
|
||||
--output-file "${output_file}" \
|
||||
--output-dir "${output_dir}" \
|
||||
--output-pkg "${output_pkg}" \
|
||||
--report-filename "${report_file}" \
|
||||
|
@ -33,6 +33,9 @@ var DefaultBasePeerDirs = []string{
|
||||
|
||||
// CustomArgs is used by the gengo framework to pass args specific to this generator.
|
||||
type CustomArgs struct {
|
||||
// The filename of the generated results.
|
||||
OutputFile string
|
||||
|
||||
// Base peer dirs which nearly everybody will use, i.e. outside of Kubernetes core. Peer dirs
|
||||
// are declared to make the generator pick up manually written conversion funcs from external
|
||||
// packages.
|
||||
@ -62,12 +65,13 @@ func NewDefaults() (*args.GeneratorArgs, *CustomArgs) {
|
||||
SkipUnsafe: false,
|
||||
}
|
||||
genericArgs.CustomArgs = customArgs
|
||||
genericArgs.OutputFileBaseName = "conversion_generated"
|
||||
return genericArgs, customArgs
|
||||
}
|
||||
|
||||
// AddFlags add the generator flags to the flag set.
|
||||
func (ca *CustomArgs) AddFlags(fs *pflag.FlagSet) {
|
||||
fs.StringVar(&ca.OutputFile, "output-file", "generated.conversion.go",
|
||||
"the name of the file to be generated")
|
||||
fs.StringSliceVar(&ca.BasePeerDirs, "base-peer-dirs", ca.BasePeerDirs,
|
||||
"Comma-separated list of apimachinery import paths which are considered, after tag-specified peers, for conversions. Only change these if you have very good reasons.")
|
||||
fs.StringSliceVar(&ca.ExtraPeerDirs, "extra-peer-dirs", ca.ExtraPeerDirs,
|
||||
@ -80,10 +84,10 @@ func (ca *CustomArgs) AddFlags(fs *pflag.FlagSet) {
|
||||
|
||||
// Validate checks the given arguments.
|
||||
func Validate(genericArgs *args.GeneratorArgs) error {
|
||||
_ = genericArgs.CustomArgs.(*CustomArgs)
|
||||
custom := genericArgs.CustomArgs.(*CustomArgs)
|
||||
|
||||
if len(genericArgs.OutputFileBaseName) == 0 {
|
||||
return fmt.Errorf("output file base name cannot be empty")
|
||||
if len(custom.OutputFile) == 0 {
|
||||
return fmt.Errorf("--output-file must be specified")
|
||||
}
|
||||
|
||||
return nil
|
||||
|
@ -336,7 +336,7 @@ func GetTargets(context *generator.Context, arguments *args.GeneratorArgs) []gen
|
||||
},
|
||||
GeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {
|
||||
return []generator.Generator{
|
||||
NewGenConversion(arguments.OutputFileBaseName, typesPkg.Path, pkg.Path, manualConversions, pkgToPeers[pkg.Path], unsafeEquality),
|
||||
NewGenConversion(customArgs.OutputFile, typesPkg.Path, pkg.Path, manualConversions, pkgToPeers[pkg.Path], unsafeEquality),
|
||||
}
|
||||
},
|
||||
})
|
||||
|
@ -32,22 +32,23 @@ func NewDefaults() (*args.GeneratorArgs, *CustomArgs) {
|
||||
genericArgs := args.Default().WithoutDefaultFlagParsing()
|
||||
customArgs := &CustomArgs{}
|
||||
genericArgs.CustomArgs = (*generators.CustomArgs)(customArgs) // convert to upstream type to make type-casts work there
|
||||
genericArgs.OutputFileBaseName = "deepcopy_generated"
|
||||
return genericArgs, customArgs
|
||||
}
|
||||
|
||||
// AddFlags add the generator flags to the flag set.
|
||||
func (ca *CustomArgs) AddFlags(fs *pflag.FlagSet) {
|
||||
fs.StringVar(&ca.OutputFile, "output-file", "generated.deepcopy.go",
|
||||
"the name of the file to be generated")
|
||||
fs.StringSliceVar(&ca.BoundingDirs, "bounding-dirs", ca.BoundingDirs,
|
||||
"Comma-separated list of import paths which bound the types for which deep-copies will be generated.")
|
||||
}
|
||||
|
||||
// Validate checks the given arguments.
|
||||
func Validate(genericArgs *args.GeneratorArgs) error {
|
||||
_ = genericArgs.CustomArgs.(*generators.CustomArgs)
|
||||
custom := genericArgs.CustomArgs.(*generators.CustomArgs)
|
||||
|
||||
if len(genericArgs.OutputFileBaseName) == 0 {
|
||||
return fmt.Errorf("output file base name cannot be empty")
|
||||
if len(custom.OutputFile) == 0 {
|
||||
return fmt.Errorf("--output-file must be specified")
|
||||
}
|
||||
|
||||
return nil
|
||||
|
@ -32,22 +32,23 @@ func NewDefaults() (*args.GeneratorArgs, *CustomArgs) {
|
||||
genericArgs := args.Default().WithoutDefaultFlagParsing()
|
||||
customArgs := &CustomArgs{}
|
||||
genericArgs.CustomArgs = (*generators.CustomArgs)(customArgs) // convert to upstream type to make type-casts work there
|
||||
genericArgs.OutputFileBaseName = "zz_generated.defaults"
|
||||
return genericArgs, customArgs
|
||||
}
|
||||
|
||||
// AddFlags add the generator flags to the flag set.
|
||||
func (ca *CustomArgs) AddFlags(fs *pflag.FlagSet) {
|
||||
fs.StringVar(&ca.OutputFile, "output-file", "generated.defaults.go",
|
||||
"the name of the file to be generated")
|
||||
fs.StringSliceVar(&ca.ExtraPeerDirs, "extra-peer-dirs", ca.ExtraPeerDirs,
|
||||
"Comma-separated list of import paths which are considered, after tag-specified peers, for conversions.")
|
||||
}
|
||||
|
||||
// Validate checks the given arguments.
|
||||
func Validate(genericArgs *args.GeneratorArgs) error {
|
||||
_ = genericArgs.CustomArgs.(*generators.CustomArgs)
|
||||
custom := genericArgs.CustomArgs.(*generators.CustomArgs)
|
||||
|
||||
if len(genericArgs.OutputFileBaseName) == 0 {
|
||||
return fmt.Errorf("output file base name cannot be empty")
|
||||
if len(custom.OutputFile) == 0 {
|
||||
return fmt.Errorf("--output-file must be specified")
|
||||
}
|
||||
|
||||
return nil
|
||||
|
@ -32,20 +32,21 @@ func NewDefaults() (*args.GeneratorArgs, *CustomArgs) {
|
||||
genericArgs := args.Default().WithoutDefaultFlagParsing()
|
||||
customArgs := &CustomArgs{}
|
||||
genericArgs.CustomArgs = (*statusgenerators.CustomArgs)(customArgs) // convert to upstream type to make type-casts work there
|
||||
genericArgs.OutputFileBaseName = "zz_prerelease_lifecycle_generated"
|
||||
return genericArgs, customArgs
|
||||
}
|
||||
|
||||
// AddFlags add the generator flags to the flag set.
|
||||
func (ca *CustomArgs) AddFlags(fs *pflag.FlagSet) {
|
||||
fs.StringVar(&ca.OutputFile, "output-file", "generated.prerelease_lifecycle.go",
|
||||
"the name of the file to be generated")
|
||||
}
|
||||
|
||||
// Validate checks the given arguments.
|
||||
func Validate(genericArgs *args.GeneratorArgs) error {
|
||||
_ = genericArgs.CustomArgs.(*statusgenerators.CustomArgs)
|
||||
custom := genericArgs.CustomArgs.(*statusgenerators.CustomArgs)
|
||||
|
||||
if len(genericArgs.OutputFileBaseName) == 0 {
|
||||
return fmt.Errorf("output file base name cannot be empty")
|
||||
if len(custom.OutputFile) == 0 {
|
||||
return fmt.Errorf("--output-file must be specified")
|
||||
}
|
||||
|
||||
return nil
|
||||
|
@ -33,6 +33,7 @@ import (
|
||||
|
||||
// CustomArgs is used tby the go2idl framework to pass args specific to this generator.
|
||||
type CustomArgs struct {
|
||||
OutputFile string
|
||||
}
|
||||
|
||||
// This is the comment tag that carries parameters for API status generation. Because the cadence is fixed, we can predict
|
||||
@ -229,6 +230,8 @@ func GetTargets(context *generator.Context, arguments *args.GeneratorArgs) []gen
|
||||
}
|
||||
}
|
||||
|
||||
customArgs := arguments.CustomArgs.(*CustomArgs)
|
||||
|
||||
if pkgNeedsGeneration {
|
||||
targets = append(targets,
|
||||
&generator.SimpleTarget{
|
||||
@ -241,7 +244,7 @@ func GetTargets(context *generator.Context, arguments *args.GeneratorArgs) []gen
|
||||
},
|
||||
GeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {
|
||||
return []generator.Generator{
|
||||
NewPrereleaseLifecycleGen(arguments.OutputFileBaseName, pkg.Path),
|
||||
NewPrereleaseLifecycleGen(customArgs.OutputFile, pkg.Path),
|
||||
}
|
||||
},
|
||||
})
|
||||
|
@ -19,19 +19,31 @@ package args
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/spf13/pflag"
|
||||
"k8s.io/gengo/v2/args"
|
||||
)
|
||||
|
||||
type CustomArgs struct {
|
||||
OutputFile string
|
||||
}
|
||||
|
||||
// NewDefaults returns default arguments for the generator.
|
||||
func NewDefaults() *args.GeneratorArgs {
|
||||
genericArgs := args.Default().WithoutDefaultFlagParsing()
|
||||
genericArgs.OutputFileBaseName = "zz_generated.register"
|
||||
genericArgs.CustomArgs = &CustomArgs{}
|
||||
return genericArgs
|
||||
}
|
||||
|
||||
// AddFlags add the generator flags to the flag set.
|
||||
func (ca *CustomArgs) AddFlags(fs *pflag.FlagSet) {
|
||||
fs.StringVar(&ca.OutputFile, "output-file", "generated.register.go",
|
||||
"the name of the file to be generated")
|
||||
}
|
||||
|
||||
// Validate checks the given arguments.
|
||||
func Validate(genericArgs *args.GeneratorArgs) error {
|
||||
if len(genericArgs.OutputFileBaseName) == 0 {
|
||||
custom := genericArgs.CustomArgs.(*CustomArgs)
|
||||
if len(custom.OutputFile) == 0 {
|
||||
return fmt.Errorf("output file base name cannot be empty")
|
||||
}
|
||||
|
||||
|
@ -25,6 +25,7 @@ import (
|
||||
"k8s.io/klog/v2"
|
||||
|
||||
clientgentypes "k8s.io/code-generator/cmd/client-gen/types"
|
||||
registerargs "k8s.io/code-generator/cmd/register-gen/args"
|
||||
"k8s.io/gengo/v2/args"
|
||||
"k8s.io/gengo/v2/generator"
|
||||
"k8s.io/gengo/v2/namer"
|
||||
@ -49,22 +50,24 @@ func GetTargets(context *generator.Context, arguments *args.GeneratorArgs) []gen
|
||||
klog.Fatalf("Failed loading boilerplate: %v", err)
|
||||
}
|
||||
|
||||
customArgs := arguments.CustomArgs.(*registerargs.CustomArgs)
|
||||
|
||||
targets := []generator.Target{}
|
||||
for _, input := range context.Inputs {
|
||||
pkg := context.Universe.Package(input)
|
||||
internal, err := isInternal(pkg)
|
||||
if err != nil {
|
||||
klog.V(5).Infof("skipping the generation of %s file, due to err %v", arguments.OutputFileBaseName, err)
|
||||
klog.V(5).Infof("skipping the generation of %s file, due to err %v", customArgs.OutputFile, err)
|
||||
continue
|
||||
}
|
||||
if internal {
|
||||
klog.V(5).Infof("skipping the generation of %s file because %s package contains internal types, note that internal types don't have \"json\" tags", arguments.OutputFileBaseName, pkg.Name)
|
||||
klog.V(5).Infof("skipping the generation of %s file because %s package contains internal types, note that internal types don't have \"json\" tags", customArgs.OutputFile, pkg.Name)
|
||||
continue
|
||||
}
|
||||
registerFileName := "register.go"
|
||||
searchPath := path.Join(pkg.SourcePath, registerFileName)
|
||||
if _, err := os.Stat(path.Join(searchPath)); err == nil {
|
||||
klog.V(5).Infof("skipping the generation of %s file because %s already exists in the path %s", arguments.OutputFileBaseName, registerFileName, searchPath)
|
||||
klog.V(5).Infof("skipping the generation of %s file because %s already exists in the path %s", customArgs.OutputFile, registerFileName, searchPath)
|
||||
continue
|
||||
} else if err != nil && !os.IsNotExist(err) {
|
||||
klog.Fatalf("an error %v has occurred while checking if %s exists", err, registerFileName)
|
||||
@ -109,7 +112,7 @@ func GetTargets(context *generator.Context, arguments *args.GeneratorArgs) []gen
|
||||
return []generator.Generator{
|
||||
®isterExternalGenerator{
|
||||
GoGenerator: generator.GoGenerator{
|
||||
OutputFilename: arguments.OutputFileBaseName,
|
||||
OutputFilename: customArgs.OutputFile,
|
||||
},
|
||||
gv: gv,
|
||||
typesToGenerate: typesToRegister,
|
||||
|
@ -144,7 +144,7 @@ function kube::codegen::gen_helpers() {
|
||||
done
|
||||
"${gobin}/deepcopy-gen" \
|
||||
-v "${v}" \
|
||||
--output-file-base zz_generated.deepcopy.go \
|
||||
--output-file zz_generated.deepcopy.go \
|
||||
--go-header-file "${boilerplate}" \
|
||||
"${input_args[@]}"
|
||||
fi
|
||||
@ -180,7 +180,7 @@ function kube::codegen::gen_helpers() {
|
||||
done
|
||||
"${gobin}/defaulter-gen" \
|
||||
-v "${v}" \
|
||||
--output-file-base zz_generated.defaults.go \
|
||||
--output-file zz_generated.defaults.go \
|
||||
--go-header-file "${boilerplate}" \
|
||||
"${input_args[@]}"
|
||||
fi
|
||||
@ -220,7 +220,7 @@ function kube::codegen::gen_helpers() {
|
||||
done
|
||||
"${gobin}/conversion-gen" \
|
||||
-v "${v}" \
|
||||
--output-file-base zz_generated.conversion.go \
|
||||
--output-file zz_generated.conversion.go \
|
||||
--go-header-file "${boilerplate}" \
|
||||
"${extra_peer_args[@]:+"${extra_peer_args[@]}"}" \
|
||||
"${input_args[@]}"
|
||||
@ -373,7 +373,7 @@ function kube::codegen::gen_openapi() {
|
||||
done
|
||||
"${gobin}/openapi-gen" \
|
||||
-v "${v}" \
|
||||
--output-file-base zz_generated.openapi.go \
|
||||
--output-file zz_generated.openapi.go \
|
||||
--go-header-file "${boilerplate}" \
|
||||
--output-dir "${out_dir}" \
|
||||
--output-pkg "${out_pkg}" \
|
||||
|
Loading…
Reference in New Issue
Block a user