This is a collection of helper rules. These are not core to building a go binary, but are supplied to make life a little easier.
Contents
This rule has moved. See gazelle rule in the Gazelle repository.
This rule allows you to generate mock interfaces with mockgen (from golang/mock) which can be useful for certain testing scenarios. See gomock_rule in the gomock repository.
go_embed_data
generates a .go file that contains data from a file or a
list of files. It should be consumed in the srcs list of one of the
core go rules.
Before using go_embed_data
, you must add the following snippet to your
WORKSPACE:
load("@io_bazel_rules_go//extras:embed_data_deps.bzl", "go_embed_data_dependencies")
go_embed_data_dependencies()
go_embed_data
accepts the attributes listed below.
Name | Type | Default value |
name | string | mandatory value |
A unique name for this rule. | ||
package | string | "" |
Go package name for the generated .go file. | ||
var | string | "Data" |
Name of the variable that will contain the embedded data. | ||
src | string | "" |
A single file to embed. This cannot be used at the same time as srcs. The generated file will have a variable of type []byte or string with the contents of this file. | ||
srcs | string | None |
A list of files to embed. This cannot be used at the same time as src.
The generated file will have a variable of type map[string][]byte or
map[string]string with the contents of each file.
The map keys are relative paths the files from the repository root.
Keys for files in external repositories will be prefixed with "external/repo/" where
"repo" is the name of the external repository. |
||
flatten | boolean | False |
If True and srcs is used, map keys are file base names instead of relative
paths. |
||
unpack | boolean | False |
If True , sources are treated as archives and their contents will be stored. Supported
formats are .zip and .tar. |
||
string | boolean | False |
If True , the embedded data will be stored as string instead of []byte. |