diff --git a/cmd/ctl/pkg/build/BUILD.bazel b/cmd/ctl/pkg/build/BUILD.bazel new file mode 100644 index 000000000..e17c4e219 --- /dev/null +++ b/cmd/ctl/pkg/build/BUILD.bazel @@ -0,0 +1,25 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["build.go"], + importpath = "github.com/jetstack/cert-manager/cmd/ctl/pkg/build", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//cmd/ctl/pkg/build/commands:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/cmd/ctl/pkg/build/build.go b/cmd/ctl/pkg/build/build.go new file mode 100644 index 000000000..83b0fd915 --- /dev/null +++ b/cmd/ctl/pkg/build/build.go @@ -0,0 +1,43 @@ +/* +Copyright 2020 The cert-manager 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. +*/ + +package build + +import ( + "bytes" + "text/template" +) + +// name is the build time configurable name of the build (name of the target +// binary name). +var name = "kubectl cert-manager" + +// Name returns the build name. +func Name() string { + return name +} + +// WithTemplate returns a string that has the build name templated out with the +// configured build name. Build name templates on '{{ .BuildName }}' variable. +func WithTemplate(str string) string { + tmpl := template.Must(template.New("build-name").Parse(str)) + var buf bytes.Buffer + if err := tmpl.Execute(&buf, struct{ BuildName string }{name}); err != nil { + // We panic here as it should never be possible that this template fails. + panic(err) + } + return buf.String() +}