From 8f898a376336f626108dfe517cea5bf2ad24a77f Mon Sep 17 00:00:00 2001 From: Nikhita Raghunath Date: Wed, 27 Dec 2017 17:16:31 +0530 Subject: [PATCH] code-generator: add boilerplate header Currently, the boilerplate header from k8s.io/kubernetes is used. If k8s.io/kubernetes is not in the GOPATH, a panic will occur. To fix this, we first calculate the relative path to k8s.io/code-generator and then use the boilerplate from code-generator. This avoids hard coding the path and works well for all repos. --- staging/BUILD | 1 + .../k8s.io/code-generator/cmd/client-gen/BUILD | 1 + .../code-generator/cmd/client-gen/main.go | 3 ++- .../code-generator/cmd/conversion-gen/BUILD | 1 + .../code-generator/cmd/conversion-gen/main.go | 3 ++- .../code-generator/cmd/deepcopy-gen/BUILD | 1 + .../code-generator/cmd/deepcopy-gen/main.go | 3 ++- .../code-generator/cmd/defaulter-gen/BUILD | 1 + .../code-generator/cmd/defaulter-gen/main.go | 3 ++- .../cmd/go-to-protobuf/protobuf/BUILD | 1 + .../cmd/go-to-protobuf/protobuf/cmd.go | 3 ++- .../code-generator/cmd/import-boss/BUILD | 1 + .../code-generator/cmd/import-boss/main.go | 3 ++- .../code-generator/cmd/informer-gen/BUILD | 1 + .../code-generator/cmd/informer-gen/main.go | 3 ++- .../k8s.io/code-generator/cmd/lister-gen/BUILD | 1 + .../code-generator/cmd/lister-gen/main.go | 3 ++- .../code-generator/cmd/openapi-gen/BUILD | 1 + .../code-generator/cmd/openapi-gen/main.go | 3 ++- .../k8s.io/code-generator/cmd/set-gen/BUILD | 1 + .../k8s.io/code-generator/cmd/set-gen/main.go | 3 ++- staging/src/k8s.io/code-generator/hack/BUILD | 18 ++++++++++++++++++ .../code-generator/hack/boilerplate.go.txt | 16 ++++++++++++++++ .../k8s.io/code-generator/pkg/util/build.go | 9 +++++++++ 24 files changed, 74 insertions(+), 10 deletions(-) create mode 100644 staging/src/k8s.io/code-generator/hack/BUILD create mode 100644 staging/src/k8s.io/code-generator/hack/boilerplate.go.txt diff --git a/staging/BUILD b/staging/BUILD index 38d8326f2a..ed1965fc2b 100644 --- a/staging/BUILD +++ b/staging/BUILD @@ -212,6 +212,7 @@ filegroup( "//staging/src/k8s.io/code-generator/cmd/lister-gen:all-srcs", "//staging/src/k8s.io/code-generator/cmd/openapi-gen:all-srcs", "//staging/src/k8s.io/code-generator/cmd/set-gen:all-srcs", + "//staging/src/k8s.io/code-generator/hack:all-srcs", "//staging/src/k8s.io/code-generator/pkg/util:all-srcs", "//staging/src/k8s.io/code-generator/third_party/forked/golang/reflect:all-srcs", "//staging/src/k8s.io/kube-aggregator:all-srcs", diff --git a/staging/src/k8s.io/code-generator/cmd/client-gen/BUILD b/staging/src/k8s.io/code-generator/cmd/client-gen/BUILD index c32c5bf367..ce49c939ef 100644 --- a/staging/src/k8s.io/code-generator/cmd/client-gen/BUILD +++ b/staging/src/k8s.io/code-generator/cmd/client-gen/BUILD @@ -21,6 +21,7 @@ go_library( "//vendor/github.com/spf13/pflag:go_default_library", "//vendor/k8s.io/code-generator/cmd/client-gen/args:go_default_library", "//vendor/k8s.io/code-generator/cmd/client-gen/generators:go_default_library", + "//vendor/k8s.io/code-generator/pkg/util:go_default_library", "//vendor/k8s.io/gengo/args:go_default_library", ], ) diff --git a/staging/src/k8s.io/code-generator/cmd/client-gen/main.go b/staging/src/k8s.io/code-generator/cmd/client-gen/main.go index ca829c30b1..22c28e35f8 100644 --- a/staging/src/k8s.io/code-generator/cmd/client-gen/main.go +++ b/staging/src/k8s.io/code-generator/cmd/client-gen/main.go @@ -27,6 +27,7 @@ import ( generatorargs "k8s.io/code-generator/cmd/client-gen/args" "k8s.io/code-generator/cmd/client-gen/generators" + "k8s.io/code-generator/pkg/util" ) func main() { @@ -34,7 +35,7 @@ func main() { // Override defaults. // TODO: move this out of client-gen - genericArgs.GoHeaderFilePath = filepath.Join(args.DefaultSourceTree(), "k8s.io/kubernetes/hack/boilerplate/boilerplate.go.txt") + genericArgs.GoHeaderFilePath = filepath.Join(args.DefaultSourceTree(), util.BoilerplatePath()) genericArgs.OutputPackagePath = "k8s.io/kubernetes/pkg/client/clientset_generated/" genericArgs.AddFlags(pflag.CommandLine) diff --git a/staging/src/k8s.io/code-generator/cmd/conversion-gen/BUILD b/staging/src/k8s.io/code-generator/cmd/conversion-gen/BUILD index 2a2572b8a0..c0fd6862bc 100644 --- a/staging/src/k8s.io/code-generator/cmd/conversion-gen/BUILD +++ b/staging/src/k8s.io/code-generator/cmd/conversion-gen/BUILD @@ -21,6 +21,7 @@ go_library( "//vendor/github.com/spf13/pflag:go_default_library", "//vendor/k8s.io/code-generator/cmd/conversion-gen/args:go_default_library", "//vendor/k8s.io/code-generator/cmd/conversion-gen/generators:go_default_library", + "//vendor/k8s.io/code-generator/pkg/util:go_default_library", "//vendor/k8s.io/gengo/args:go_default_library", ], ) diff --git a/staging/src/k8s.io/code-generator/cmd/conversion-gen/main.go b/staging/src/k8s.io/code-generator/cmd/conversion-gen/main.go index afb060762b..f2b91cc2e2 100644 --- a/staging/src/k8s.io/code-generator/cmd/conversion-gen/main.go +++ b/staging/src/k8s.io/code-generator/cmd/conversion-gen/main.go @@ -44,6 +44,7 @@ import ( generatorargs "k8s.io/code-generator/cmd/conversion-gen/args" "k8s.io/code-generator/cmd/conversion-gen/generators" + "k8s.io/code-generator/pkg/util" ) func main() { @@ -51,7 +52,7 @@ func main() { // Override defaults. // TODO: move this out of conversion-gen - genericArgs.GoHeaderFilePath = filepath.Join(args.DefaultSourceTree(), "k8s.io/kubernetes/hack/boilerplate/boilerplate.go.txt") + genericArgs.GoHeaderFilePath = filepath.Join(args.DefaultSourceTree(), util.BoilerplatePath()) genericArgs.AddFlags(pflag.CommandLine) customArgs.AddFlags(pflag.CommandLine) diff --git a/staging/src/k8s.io/code-generator/cmd/deepcopy-gen/BUILD b/staging/src/k8s.io/code-generator/cmd/deepcopy-gen/BUILD index 8b004d683a..ea92990c77 100644 --- a/staging/src/k8s.io/code-generator/cmd/deepcopy-gen/BUILD +++ b/staging/src/k8s.io/code-generator/cmd/deepcopy-gen/BUILD @@ -20,6 +20,7 @@ go_library( "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", "//vendor/k8s.io/code-generator/cmd/deepcopy-gen/args:go_default_library", + "//vendor/k8s.io/code-generator/pkg/util:go_default_library", "//vendor/k8s.io/gengo/args:go_default_library", "//vendor/k8s.io/gengo/examples/deepcopy-gen/generators:go_default_library", ], diff --git a/staging/src/k8s.io/code-generator/cmd/deepcopy-gen/main.go b/staging/src/k8s.io/code-generator/cmd/deepcopy-gen/main.go index 5eabfd1b6a..cce65b772f 100644 --- a/staging/src/k8s.io/code-generator/cmd/deepcopy-gen/main.go +++ b/staging/src/k8s.io/code-generator/cmd/deepcopy-gen/main.go @@ -52,6 +52,7 @@ import ( "k8s.io/gengo/examples/deepcopy-gen/generators" generatorargs "k8s.io/code-generator/cmd/deepcopy-gen/args" + "k8s.io/code-generator/pkg/util" ) func main() { @@ -59,7 +60,7 @@ func main() { // Override defaults. // TODO: move this out of deepcopy-gen - genericArgs.GoHeaderFilePath = filepath.Join(args.DefaultSourceTree(), "k8s.io/kubernetes/hack/boilerplate/boilerplate.go.txt") + genericArgs.GoHeaderFilePath = filepath.Join(args.DefaultSourceTree(), util.BoilerplatePath()) genericArgs.AddFlags(pflag.CommandLine) customArgs.AddFlags(pflag.CommandLine) diff --git a/staging/src/k8s.io/code-generator/cmd/defaulter-gen/BUILD b/staging/src/k8s.io/code-generator/cmd/defaulter-gen/BUILD index 329da12e79..d1d29fe43c 100644 --- a/staging/src/k8s.io/code-generator/cmd/defaulter-gen/BUILD +++ b/staging/src/k8s.io/code-generator/cmd/defaulter-gen/BUILD @@ -20,6 +20,7 @@ go_library( "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", "//vendor/k8s.io/code-generator/cmd/defaulter-gen/args:go_default_library", + "//vendor/k8s.io/code-generator/pkg/util:go_default_library", "//vendor/k8s.io/gengo/args:go_default_library", "//vendor/k8s.io/gengo/examples/defaulter-gen/generators:go_default_library", ], diff --git a/staging/src/k8s.io/code-generator/cmd/defaulter-gen/main.go b/staging/src/k8s.io/code-generator/cmd/defaulter-gen/main.go index 4f55680b4f..9d33f700b3 100644 --- a/staging/src/k8s.io/code-generator/cmd/defaulter-gen/main.go +++ b/staging/src/k8s.io/code-generator/cmd/defaulter-gen/main.go @@ -51,6 +51,7 @@ import ( "k8s.io/gengo/examples/defaulter-gen/generators" generatorargs "k8s.io/code-generator/cmd/defaulter-gen/args" + "k8s.io/code-generator/pkg/util" ) func main() { @@ -58,7 +59,7 @@ func main() { // Override defaults. // TODO: move this out of defaulter-gen - genericArgs.GoHeaderFilePath = filepath.Join(args.DefaultSourceTree(), "k8s.io/kubernetes/hack/boilerplate/boilerplate.go.txt") + genericArgs.GoHeaderFilePath = filepath.Join(args.DefaultSourceTree(), util.BoilerplatePath()) genericArgs.AddFlags(pflag.CommandLine) customArgs.AddFlags(pflag.CommandLine) diff --git a/staging/src/k8s.io/code-generator/cmd/go-to-protobuf/protobuf/BUILD b/staging/src/k8s.io/code-generator/cmd/go-to-protobuf/protobuf/BUILD index 17b25ab006..be8608c8b5 100644 --- a/staging/src/k8s.io/code-generator/cmd/go-to-protobuf/protobuf/BUILD +++ b/staging/src/k8s.io/code-generator/cmd/go-to-protobuf/protobuf/BUILD @@ -21,6 +21,7 @@ go_library( deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", + "//vendor/k8s.io/code-generator/pkg/util:go_default_library", "//vendor/k8s.io/code-generator/third_party/forked/golang/reflect:go_default_library", "//vendor/k8s.io/gengo/args:go_default_library", "//vendor/k8s.io/gengo/generator:go_default_library", diff --git a/staging/src/k8s.io/code-generator/cmd/go-to-protobuf/protobuf/cmd.go b/staging/src/k8s.io/code-generator/cmd/go-to-protobuf/protobuf/cmd.go index 06b7638db6..5550732259 100644 --- a/staging/src/k8s.io/code-generator/cmd/go-to-protobuf/protobuf/cmd.go +++ b/staging/src/k8s.io/code-generator/cmd/go-to-protobuf/protobuf/cmd.go @@ -27,6 +27,7 @@ import ( "path/filepath" "strings" + "k8s.io/code-generator/pkg/util" "k8s.io/gengo/args" "k8s.io/gengo/generator" "k8s.io/gengo/namer" @@ -55,7 +56,7 @@ func New() *Generator { sourceTree := args.DefaultSourceTree() common := args.GeneratorArgs{ OutputBase: sourceTree, - GoHeaderFilePath: filepath.Join(sourceTree, "k8s.io/kubernetes/hack/boilerplate/boilerplate.go.txt"), + GoHeaderFilePath: filepath.Join(sourceTree, util.BoilerplatePath()), } defaultProtoImport := filepath.Join(sourceTree, "k8s.io", "kubernetes", "vendor", "github.com", "gogo", "protobuf", "protobuf") cwd, err := os.Getwd() diff --git a/staging/src/k8s.io/code-generator/cmd/import-boss/BUILD b/staging/src/k8s.io/code-generator/cmd/import-boss/BUILD index 189cc09f12..ea42fe21a3 100644 --- a/staging/src/k8s.io/code-generator/cmd/import-boss/BUILD +++ b/staging/src/k8s.io/code-generator/cmd/import-boss/BUILD @@ -18,6 +18,7 @@ go_library( importpath = "k8s.io/code-generator/cmd/import-boss", deps = [ "//vendor/github.com/golang/glog:go_default_library", + "//vendor/k8s.io/code-generator/pkg/util:go_default_library", "//vendor/k8s.io/gengo/args:go_default_library", "//vendor/k8s.io/gengo/examples/import-boss/generators:go_default_library", ], diff --git a/staging/src/k8s.io/code-generator/cmd/import-boss/main.go b/staging/src/k8s.io/code-generator/cmd/import-boss/main.go index a6fad8efe2..d998994415 100644 --- a/staging/src/k8s.io/code-generator/cmd/import-boss/main.go +++ b/staging/src/k8s.io/code-generator/cmd/import-boss/main.go @@ -59,6 +59,7 @@ import ( "os" "path/filepath" + "k8s.io/code-generator/pkg/util" "k8s.io/gengo/args" "k8s.io/gengo/examples/import-boss/generators" @@ -69,7 +70,7 @@ func main() { arguments := args.Default() // Override defaults. - arguments.GoHeaderFilePath = filepath.Join(args.DefaultSourceTree(), "k8s.io/kubernetes/hack/boilerplate/boilerplate.go.txt") + arguments.GoHeaderFilePath = filepath.Join(args.DefaultSourceTree(), util.BoilerplatePath()) arguments.InputDirs = []string{ "k8s.io/kubernetes/pkg/...", "k8s.io/kubernetes/cmd/...", diff --git a/staging/src/k8s.io/code-generator/cmd/informer-gen/BUILD b/staging/src/k8s.io/code-generator/cmd/informer-gen/BUILD index c5b4f91702..2211cdfda7 100644 --- a/staging/src/k8s.io/code-generator/cmd/informer-gen/BUILD +++ b/staging/src/k8s.io/code-generator/cmd/informer-gen/BUILD @@ -21,6 +21,7 @@ go_library( "//vendor/github.com/spf13/pflag:go_default_library", "//vendor/k8s.io/code-generator/cmd/informer-gen/args:go_default_library", "//vendor/k8s.io/code-generator/cmd/informer-gen/generators:go_default_library", + "//vendor/k8s.io/code-generator/pkg/util:go_default_library", "//vendor/k8s.io/gengo/args:go_default_library", ], ) diff --git a/staging/src/k8s.io/code-generator/cmd/informer-gen/main.go b/staging/src/k8s.io/code-generator/cmd/informer-gen/main.go index e993e620eb..bfe826080c 100644 --- a/staging/src/k8s.io/code-generator/cmd/informer-gen/main.go +++ b/staging/src/k8s.io/code-generator/cmd/informer-gen/main.go @@ -23,6 +23,7 @@ import ( "github.com/golang/glog" "github.com/spf13/pflag" "k8s.io/code-generator/cmd/informer-gen/generators" + "k8s.io/code-generator/pkg/util" "k8s.io/gengo/args" generatorargs "k8s.io/code-generator/cmd/informer-gen/args" @@ -33,7 +34,7 @@ func main() { // Override defaults. // TODO: move out of informer-gen - genericArgs.GoHeaderFilePath = filepath.Join(args.DefaultSourceTree(), "k8s.io/kubernetes/hack/boilerplate/boilerplate.go.txt") + genericArgs.GoHeaderFilePath = filepath.Join(args.DefaultSourceTree(), util.BoilerplatePath()) genericArgs.OutputPackagePath = "k8s.io/kubernetes/pkg/client/informers/informers_generated" customArgs.VersionedClientSetPackage = "k8s.io/kubernetes/pkg/client/clientset_generated/clientset" customArgs.InternalClientSetPackage = "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" diff --git a/staging/src/k8s.io/code-generator/cmd/lister-gen/BUILD b/staging/src/k8s.io/code-generator/cmd/lister-gen/BUILD index 1d7e9a65c7..c39a4ef614 100644 --- a/staging/src/k8s.io/code-generator/cmd/lister-gen/BUILD +++ b/staging/src/k8s.io/code-generator/cmd/lister-gen/BUILD @@ -21,6 +21,7 @@ go_library( "//vendor/github.com/spf13/pflag:go_default_library", "//vendor/k8s.io/code-generator/cmd/lister-gen/args:go_default_library", "//vendor/k8s.io/code-generator/cmd/lister-gen/generators:go_default_library", + "//vendor/k8s.io/code-generator/pkg/util:go_default_library", "//vendor/k8s.io/gengo/args:go_default_library", ], ) diff --git a/staging/src/k8s.io/code-generator/cmd/lister-gen/main.go b/staging/src/k8s.io/code-generator/cmd/lister-gen/main.go index 6c48240aca..d5ff8e46ee 100644 --- a/staging/src/k8s.io/code-generator/cmd/lister-gen/main.go +++ b/staging/src/k8s.io/code-generator/cmd/lister-gen/main.go @@ -23,6 +23,7 @@ import ( "github.com/golang/glog" "github.com/spf13/pflag" "k8s.io/code-generator/cmd/lister-gen/generators" + "k8s.io/code-generator/pkg/util" "k8s.io/gengo/args" generatorargs "k8s.io/code-generator/cmd/lister-gen/args" @@ -33,7 +34,7 @@ func main() { // Override defaults. // TODO: move this out of lister-gen - genericArgs.GoHeaderFilePath = filepath.Join(args.DefaultSourceTree(), "k8s.io/kubernetes/hack/boilerplate/boilerplate.go.txt") + genericArgs.GoHeaderFilePath = filepath.Join(args.DefaultSourceTree(), util.BoilerplatePath()) genericArgs.OutputPackagePath = "k8s.io/kubernetes/pkg/client/listers" genericArgs.AddFlags(pflag.CommandLine) diff --git a/staging/src/k8s.io/code-generator/cmd/openapi-gen/BUILD b/staging/src/k8s.io/code-generator/cmd/openapi-gen/BUILD index 2a464aae53..339a2cab96 100644 --- a/staging/src/k8s.io/code-generator/cmd/openapi-gen/BUILD +++ b/staging/src/k8s.io/code-generator/cmd/openapi-gen/BUILD @@ -20,6 +20,7 @@ go_library( "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", "//vendor/k8s.io/code-generator/cmd/openapi-gen/args:go_default_library", + "//vendor/k8s.io/code-generator/pkg/util:go_default_library", "//vendor/k8s.io/gengo/args:go_default_library", "//vendor/k8s.io/kube-openapi/pkg/generators:go_default_library", ], diff --git a/staging/src/k8s.io/code-generator/cmd/openapi-gen/main.go b/staging/src/k8s.io/code-generator/cmd/openapi-gen/main.go index c324c10bab..fbafc50257 100644 --- a/staging/src/k8s.io/code-generator/cmd/openapi-gen/main.go +++ b/staging/src/k8s.io/code-generator/cmd/openapi-gen/main.go @@ -29,6 +29,7 @@ import ( "k8s.io/kube-openapi/pkg/generators" generatorargs "k8s.io/code-generator/cmd/openapi-gen/args" + "k8s.io/code-generator/pkg/util" ) func main() { @@ -36,7 +37,7 @@ func main() { // Override defaults. // TODO: move this out of openapi-gen - genericArgs.GoHeaderFilePath = filepath.Join(args.DefaultSourceTree(), "k8s.io/kubernetes/hack/boilerplate/boilerplate.go.txt") + genericArgs.GoHeaderFilePath = filepath.Join(args.DefaultSourceTree(), util.BoilerplatePath()) genericArgs.AddFlags(pflag.CommandLine) customArgs.AddFlags(pflag.CommandLine) diff --git a/staging/src/k8s.io/code-generator/cmd/set-gen/BUILD b/staging/src/k8s.io/code-generator/cmd/set-gen/BUILD index 50c3e45930..b7eb083523 100644 --- a/staging/src/k8s.io/code-generator/cmd/set-gen/BUILD +++ b/staging/src/k8s.io/code-generator/cmd/set-gen/BUILD @@ -22,6 +22,7 @@ go_library( importpath = "k8s.io/code-generator/cmd/set-gen", deps = [ "//vendor/github.com/golang/glog:go_default_library", + "//vendor/k8s.io/code-generator/pkg/util:go_default_library", "//vendor/k8s.io/gengo/args:go_default_library", "//vendor/k8s.io/gengo/examples/set-gen/generators:go_default_library", ], diff --git a/staging/src/k8s.io/code-generator/cmd/set-gen/main.go b/staging/src/k8s.io/code-generator/cmd/set-gen/main.go index 24af2229f9..cf8f01d89e 100644 --- a/staging/src/k8s.io/code-generator/cmd/set-gen/main.go +++ b/staging/src/k8s.io/code-generator/cmd/set-gen/main.go @@ -28,6 +28,7 @@ import ( "os" "path/filepath" + "k8s.io/code-generator/pkg/util" "k8s.io/gengo/args" "k8s.io/gengo/examples/set-gen/generators" @@ -38,7 +39,7 @@ func main() { arguments := args.Default() // Override defaults. - arguments.GoHeaderFilePath = filepath.Join(args.DefaultSourceTree(), "k8s.io/kubernetes/hack/boilerplate/boilerplate.go.txt") + arguments.GoHeaderFilePath = filepath.Join(args.DefaultSourceTree(), util.BoilerplatePath()) arguments.InputDirs = []string{"k8s.io/kubernetes/pkg/util/sets/types"} arguments.OutputPackagePath = "k8s.io/apimachinery/pkg/util/sets" diff --git a/staging/src/k8s.io/code-generator/hack/BUILD b/staging/src/k8s.io/code-generator/hack/BUILD new file mode 100644 index 0000000000..bf12794f66 --- /dev/null +++ b/staging/src/k8s.io/code-generator/hack/BUILD @@ -0,0 +1,18 @@ +exports_files( + glob(["*.txt"]), + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:public"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/code-generator/hack/boilerplate.go.txt b/staging/src/k8s.io/code-generator/hack/boilerplate.go.txt new file mode 100644 index 0000000000..59e740c1ee --- /dev/null +++ b/staging/src/k8s.io/code-generator/hack/boilerplate.go.txt @@ -0,0 +1,16 @@ +/* +Copyright YEAR The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + diff --git a/staging/src/k8s.io/code-generator/pkg/util/build.go b/staging/src/k8s.io/code-generator/pkg/util/build.go index 9d3e8a8e15..6ea8f52ee0 100644 --- a/staging/src/k8s.io/code-generator/pkg/util/build.go +++ b/staging/src/k8s.io/code-generator/pkg/util/build.go @@ -18,10 +18,14 @@ package util import ( gobuild "go/build" + "path" "path/filepath" + "reflect" "strings" ) +type empty struct{} + // CurrentPackage returns the go package of the current directory, or "" if it cannot // be derived from the GOPATH. func CurrentPackage() string { @@ -50,3 +54,8 @@ func hasSubdir(root, dir string) (rel string, ok bool) { // cut off root return filepath.ToSlash(dir[len(root):]), true } + +// BoilerplatePath uses the boilerplate in code-generator by calculating the relative path to it. +func BoilerplatePath() string { + return path.Join(reflect.TypeOf(empty{}).PkgPath(), "/../../hack/boilerplate.go.txt") +}