View on GitHub

Aspect Build Systems

The end-to-end Bazel experience that developers actually want to use.

aspect print

Print syntax elements from BUILD files

Synopsis

Syntactic printer for BUILD file content.

Unlike commands like query --output=build, print never runs the Bazel loading and analysis phases. This means that print commands will return quickly, never needing to fetch external repositories, run repository rules, or perform other expensive analysis operations. It also tolerates incorrect BUILD files, such as those with invalid syntax or misspelled attributes.

On the other hand, since it does not evaluate macros, it only shows syntax that appears directly in the BUILD file. If you want to evaluate macros, use query --output=build instead.

[targets] are similar to the label syntax for other commands. Differences include:

The –output flag may accept multiple comma-separated values and may be repeated. Values may be one of:

print uses the same library as ‘buildozer’ so this documentation is relevant as well: https://github.com/bazelbuild/buildtools/blob/master/buildozer/README.md#print-commands

aspect print [--output=...] <targets> [flags]

Examples

# Print the entire definition (including comments) of the //base:heapcheck rule:
aspect print //base:heapcheck

# Print the kind of a target
aspect print --output=kind base  # output: cc_library

# Print the name of all go_library targets in //base
aspect print --output=name base:%go_library

# Get the default visibility of the //base package
aspect print --output=default_visibility base:%package

# Print labels of go_library targets under //cli that have a deps attribute
aspect print --output=label,deps //cli/...:%go_library 2>/dev/null | cut -d' ' -f1

# Print the list of labels in //base that explicitly set the testonly attribute:
aspect print --output=label --output=testonly 'base:*' 2>/dev/null

Options

  -h, --help             help for print
      --output strings   Syntax elements to print (default [rule])

Options inherited from parent commands

      --aspect:config string   User-specified Aspect CLI config file. /dev/null indicates that all further --aspect:config flags will be ignored.
      --aspect:interactive     Interactive mode (e.g. prompts for user input)

SEE ALSO