diff --git a/cmd/genconversion/conversion.go b/cmd/genconversion/conversion.go index 461fd10527e..69dfbd08a2b 100644 --- a/cmd/genconversion/conversion.go +++ b/cmd/genconversion/conversion.go @@ -17,6 +17,7 @@ limitations under the License. package main import ( + "bytes" "fmt" "io" "os" @@ -33,6 +34,7 @@ import ( "github.com/golang/glog" flag "github.com/spf13/pflag" + "golang.org/x/tools/imports" ) const pkgBase = "k8s.io/kubernetes/pkg" @@ -58,9 +60,16 @@ func main() { funcOut = file } + data := new(bytes.Buffer) + group, version := path.Split(*groupVersion) group = strings.TrimRight(group, "/") + _, err := data.WriteString(fmt.Sprintf("package %v\n", version)) + if err != nil { + glog.Fatalf("error writing package line: %v", err) + } + versionPath := path.Join(pkgBase, group, version) generator := pkg_runtime.NewConversionGenerator(api.Scheme.Raw(), versionPath) apiShort := generator.AddImport(path.Join(pkgBase, "api")) @@ -76,13 +85,21 @@ func main() { } } generator.RepackImports(util.NewStringSet()) - if err := generator.WriteImports(funcOut); err != nil { + if err := generator.WriteImports(data); err != nil { glog.Fatalf("error while writing imports: %v", err) } - if err := generator.WriteConversionFunctions(funcOut); err != nil { + if err := generator.WriteConversionFunctions(data); err != nil { glog.Fatalf("Error while writing conversion functions: %v", err) } - if err := generator.RegisterConversionFunctions(funcOut, fmt.Sprintf("%s.Scheme", apiShort)); err != nil { + if err := generator.RegisterConversionFunctions(data, fmt.Sprintf("%s.Scheme", apiShort)); err != nil { glog.Fatalf("Error while writing conversion functions: %v", err) } + + b, err := imports.Process("", data.Bytes(), nil) + if err != nil { + glog.Fatalf("error while update imports: %v", err) + } + if _, err := funcOut.Write(b); err != nil { + glog.Fatalf("error while writing out the resulting file: %v", err) + } } diff --git a/hack/after-build/update-generated-conversions.sh b/hack/after-build/update-generated-conversions.sh index 7f771b5fc1d..368c0c88211 100755 --- a/hack/after-build/update-generated-conversions.sh +++ b/hack/after-build/update-generated-conversions.sh @@ -33,26 +33,15 @@ function generate_version() { sed 's/YEAR/2015/' hack/boilerplate/boilerplate.go.txt > "$TMPFILE" cat >> "$TMPFILE" <> "$TMPFILE" - cat >> "$TMPFILE" </dev/null; then - echo "goimports not in path, run go get golang.org/x/tools/cmd/goimports" - exit 1 -fi - DEFAULT_VERSIONS="api/v1 expapi/v1" VERSIONS=${VERSIONS:-$DEFAULT_VERSIONS} for ver in $VERSIONS; do diff --git a/pkg/api/v1/conversion_generated.go b/pkg/api/v1/conversion_generated.go index e94609a6a12..dc3ad014aa6 100644 --- a/pkg/api/v1/conversion_generated.go +++ b/pkg/api/v1/conversion_generated.go @@ -14,9 +14,10 @@ See the License for the specific language governing permissions and limitations under the License. */ +// DO NOT EDIT. THIS FILE IS AUTO-GENERATED BY $KUBEROOT/hack/update-generated-conversions.sh + package v1 -// AUTO-GENERATED FUNCTIONS START HERE import ( reflect "reflect" @@ -4953,5 +4954,3 @@ func init() { panic(err) } } - -// AUTO-GENERATED FUNCTIONS END HERE diff --git a/pkg/expapi/v1/conversion_generated.go b/pkg/expapi/v1/conversion_generated.go index 2975c4d755a..875868e4947 100644 --- a/pkg/expapi/v1/conversion_generated.go +++ b/pkg/expapi/v1/conversion_generated.go @@ -14,9 +14,10 @@ See the License for the specific language governing permissions and limitations under the License. */ +// DO NOT EDIT. THIS FILE IS AUTO-GENERATED BY $KUBEROOT/hack/update-generated-conversions.sh + package v1 -// AUTO-GENERATED FUNCTIONS START HERE import ( reflect "reflect" @@ -444,5 +445,3 @@ func init() { panic(err) } } - -// AUTO-GENERATED FUNCTIONS END HERE