bazel

package
v0.19.10 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 9, 2020 License: Apache-2.0 Imports: 11 Imported by: 291

README

Golang Bazel helper package

This directory contains useful utilities for interacting with Bazel from Go.

Currently the bazel package supports:

  • Getting the path for a runfile in a test.

  • Finding and entering the location of the runfiles of a binary.

Documentation

Overview

Package bazel provides utilities for interacting with the surrounding Bazel environment.

Index

Constants

View Source
const (
	RUNFILES_MANIFEST_FILE = "RUNFILES_MANIFEST_FILE"
	RUNFILES_DIR           = "RUNFILES_DIR"
)
View Source
const TEST_SRCDIR = "TEST_SRCDIR"
View Source
const TEST_TMPDIR = "TEST_TMPDIR"
View Source
const TEST_WORKSPACE = "TEST_WORKSPACE"

Variables

This section is empty.

Functions

func EnterRunfiles added in v0.10.0

func EnterRunfiles(workspace string, pkg string, binary string, cookie string) error

EnterRunfiles locates the directory under which a built binary can find its data dependencies using relative paths, and enters that directory.

"workspace" indicates the name of the current project, "pkg" indicates the relative path to the build package that contains the binary target, "binary" indicates the basename of the binary searched for, and "cookie" indicates an arbitrary data file that we expect to find within the runfiles tree.

DEPRECATED: use RunfilesPath instead.

func FindBinary added in v0.10.0

func FindBinary(pkg, name string) (string, bool)

FindBinary returns an absolute path to the binary built from a go_binary rule in the given package with the given name. FindBinary is similar to Runfile, but it accounts for varying configurations and file extensions, which may cause the binary to have different paths on different platforms.

FindBinary may be called from tests invoked with 'bazel test' and binaries invoked with 'bazel run'. On Windows, only tests invoked with 'bazel test' are supported.

func NewTmpDir

func NewTmpDir(prefix string) (string, error)

NewTmpDir creates a new temporary directory in TestTmpDir().

func Runfile

func Runfile(path string) (string, error)

Runfile returns an absolute path to the file named by "path", which should be a relative path from the workspace root to the file within the bazel workspace.

Runfile may be called from tests invoked with 'bazel test' and binaries invoked with 'bazel run'. On Windows, only tests invoked with 'bazel test' are supported.

func RunfilesPath

func RunfilesPath() (string, error)

RunfilesPath return the path to the runfiles tree. It will return an error if there is no runfiles tree, for example because the executable is run on Windows or was not invoked with 'bazel test' or 'bazel run'.

func SetDefaultTestWorkspace

func SetDefaultTestWorkspace(w string)

SetDefaultTestWorkspace allows you to set a fake value for the environment variable TEST_WORKSPACE if it is not defined. This is useful when running tests on the command line and not through Bazel.

func TestTmpDir

func TestTmpDir() string

TestTmpDir returns the path the Bazel test temp directory. If TEST_TMPDIR is not defined, it returns the OS default temp dir.

func TestWorkspace

func TestWorkspace() (string, error)

TestWorkspace returns the name of the Bazel workspace for this test. TestWorkspace returns an error if the TEST_WORKSPACE environment variable was not set or SetDefaultTestWorkspace was not called.

Types

type RunfileEntry added in v0.17.8

type RunfileEntry struct {
	// Workspace is the bazel workspace the file came from. For example,
	// this would be "io_bazel_rules_go" for a file in rules_go.
	Workspace string

	// ShortPath is a relative, slash-separated path from the workspace root
	// to the file. For non-binary files, this may be passed to Runfile
	// to locate a file.
	ShortPath string

	// Path is an absolute path to the file.
	Path string
}

A RunfileEntry describes a runfile.

func ListRunfiles added in v0.17.8

func ListRunfiles() ([]RunfileEntry, error)

ListRunfiles returns a list of available runfiles.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL