This guide demonstrates how to include CUE files in an evaluation conditionally, using build attributes.
The example CUE package is composed of three files:
@if(foo)
package example
"data from foo.cue": true@if(!bar)
package example
"data from bar.cue": truequx.cue
package example
"data from qux.cue": trueTwo of these files contain build attributes, which control if the file’s
contents are included in evaluations of the example package based on the
presence or absence of tags:
foo.cueis included only when thefootag is present.bar.cueis included only when thebartag is not present.qux.cueis always included.
TERMINAL
$ cue export
{
"data from bar.cue": true,
"data from qux.cue": true
}
$ cue export -t foo
{
"data from bar.cue": true,
"data from foo.cue": true,
"data from qux.cue": true
}
$ cue export -t bar
{
"data from qux.cue": true
}
$ cue export -t foo -t bar
{
"data from foo.cue": true,
"data from qux.cue": true
}The
foo and bar tags are only aligned with their respective filenames to
help you understand their relationships in this example. Tags and filenames
do not need to overlap in any way: they are entirely unrelated strings.Related content
- Reference: cue help injection
– injecting tags and values into
cuecommand invocations