From b2f8cf1bce81fd45c0101b91d750429f5b656b5c Mon Sep 17 00:00:00 2001 From: Jeff Grafton Date: Wed, 11 Apr 2018 17:24:51 -0700 Subject: [PATCH] Create a go_bindata bazel macro --- build/bindata.bzl | 44 ++++++++++++++++++++++++++++++++++++++++ pkg/generated/BUILD | 15 ++++---------- test/e2e/generated/BUILD | 19 ++++++----------- 3 files changed, 54 insertions(+), 24 deletions(-) create mode 100644 build/bindata.bzl diff --git a/build/bindata.bzl b/build/bindata.bzl new file mode 100644 index 00000000000..056082d56f2 --- /dev/null +++ b/build/bindata.bzl @@ -0,0 +1,44 @@ +# Copyright 2018 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. + +# genrule wrapper around the go-bindata utility. +def go_bindata( + name, srcs, outs, + compress=True, + include_metadata=True, + pkg="generated", + ignores=["\.jpg", "\.png", "\.md", "BUILD(\.bazel)?"], + **kw): + + args = [] + for ignore in ignores: + args.extend(["-ignore", "'%s'" % ignore]) + if not include_metadata: + args.append("-nometadata") + if not compress: + args.append("-nocompress") + + native.genrule( + name = name, + srcs = srcs, + outs = outs, + cmd = """ + $(location //vendor/github.com/jteeuwen/go-bindata/go-bindata:go-bindata) \ + -o "$@" -pkg %s -prefix $$(pwd) %s $(SRCS) + """ % (pkg, " ".join(args)), + tools = [ + "//vendor/github.com/jteeuwen/go-bindata/go-bindata", + ], + **kw + ) diff --git a/pkg/generated/BUILD b/pkg/generated/BUILD index c5bee578f5c..0f7747bb736 100644 --- a/pkg/generated/BUILD +++ b/pkg/generated/BUILD @@ -4,23 +4,16 @@ load( "@io_bazel_rules_go//go:def.bzl", "go_library", ) +load("//build:bindata.bzl", "go_bindata") -genrule( +go_bindata( name = "bindata", srcs = [ "//translations:all-srcs", ], outs = ["bindata.go"], - cmd = """ -$(location //vendor/github.com/jteeuwen/go-bindata/go-bindata:go-bindata) \ - -nometadata -nocompress -o "$(OUTS)" -pkg generated \ - -prefix $$(pwd) \ - -ignore .jpg -ignore .png -ignore .md -ignore 'BUILD(\.bazel)?' \ - $(SRCS) -""", - tools = [ - "//vendor/github.com/jteeuwen/go-bindata/go-bindata", - ], + compress = False, + include_metadata = False, ) go_library( diff --git a/test/e2e/generated/BUILD b/test/e2e/generated/BUILD index 70faed73e47..1451f45a84f 100644 --- a/test/e2e/generated/BUILD +++ b/test/e2e/generated/BUILD @@ -4,6 +4,7 @@ load( "@io_bazel_rules_go//go:def.bzl", "go_library", ) +load("//build:bindata.bzl", "go_bindata") go_library( name = "go_default_library", @@ -18,24 +19,16 @@ go_library( ], ) -genrule( +go_bindata( name = "bindata", srcs = [ - "//test/images:all-srcs", - "//test/fixtures:all-srcs", "//test/e2e/testing-manifests:all-srcs", + "//test/fixtures:all-srcs", + "//test/images:all-srcs", ], outs = ["bindata.go"], - cmd = """ -$(location //vendor/github.com/jteeuwen/go-bindata/go-bindata:go-bindata) \ - -nometadata -o "$(OUTS)" -pkg generated \ - -prefix $$(pwd) \ - -ignore .jpg -ignore .png -ignore .md -ignore 'BUILD(\.bazel)?' \ - $(SRCS) -""", - tools = [ - "//vendor/github.com/jteeuwen/go-bindata/go-bindata", - ], + compress = True, + include_metadata = False, ) filegroup(