build: Index | Files

package label

import ""


Package Files



var (
    ErrInvalidLabel = errors.New("label couldn't be parsed")

func Package Uses

func Package(s string) *string

type Label Uses

type Label string

Label represents a perforce label we plan on adding more providers

func New Uses

func New(pkg, name string) Label

func Parse Uses

func Parse(s string) (Label, error)

func (Label) Attr Uses

func (l Label) Attr(attr string) (skylark.Value, error)

func (Label) AttrNames Uses

func (l Label) AttrNames() []string

func (Label) Freeze Uses

func (l Label) Freeze()

func (Label) Hash Uses

func (l Label) Hash() (uint32, error)

func (Label) IsAbs Uses

func (l Label) IsAbs() bool

func (Label) Name Uses

func (l Label) Name() string

func (Label) Package Uses

func (l Label) Package() string

func (Label) Repo Uses

func (l Label) Repo() string

func (Label) Split Uses

func (l Label) Split() (map[string]string, error)

Split splits an label.Label into package and label pair

<label> := //<package name>:<target name>

<package name> :=

The name of a package is the name of the directory containing its BUILD file,
relative to the top-level directory of the source tree. For example: my/app.
Package names must be composed entirely of characters drawn from the
set A-Z, a–z, 0–9, '/', '-', '.', and '_', and cannot start with a slash.

For a language with a directory structure that is significant to its module system
(e.g. Java), it is important to choose directory names that are valid identifiers in the language.

Although Bazel allows a package at the build root (e.g. //:foo), this is not advised
and projects should attempt to use more descriptively named packages.

Package names may not contain the substring //, nor end with a slash.

<target name> :=

Target names must be composed entirely of characters drawn from
the set a–z, A–Z, 0–9, and the punctuation symbols _/.+-=,@~.
Do not use .. to refer to files in other packages; use //packagename:filename instead.
Filenames must be relative pathnames in normal form, which
means they must neither start nor end with a slash (e.g. /foo and foo/ are forbidden)
nor contain multiple consecutive slashes as path separators (e.g. foo//bar).
Similarly, up-level references (..) and current-directory references (./) are forbidden.
The sole exception to this rule is that a target name may consist of exactly '.'.

While it is common to use / in the name of a file target, we recommend
that you avoid the use of / in the names of rules. Especially when the shorthand form
of a label is used, it may confuse the reader. The label //foo/bar/wiz is always a
shorthand for //foo/bar/wiz:wiz, even if there is no such package foo/bar/wiz;
it never refers to //foo:bar/wiz, even if that target exists.

However, there are some situations where use of a slash is convenient, or sometimes
even necessary. For example, the name of certain rules must match their principal
source file, which may reside in a subdirectory of the package.

func (Label) String Uses

func (l Label) String() string

func (Label) Truth Uses

func (l Label) Truth() skylark.Bool

func (Label) Type Uses

func (l Label) Type() string

func (Label) Valid Uses

func (l Label) Valid() error

Package label imports 6 packages (graph) and is imported by 15 packages. Updated 2018-10-16. Refresh now. Tools for package owners.