.TH "BST ARTIFACT" "1" "2024-04-17" "" "bst artifact Manual"
.SH NAME
bst\-artifact \- Manipulate cached artifacts.
.SH SYNOPSIS
.B bst artifact
[OPTIONS] COMMAND [ARGS]...
.SH DESCRIPTION
Manipulate cached artifacts
.PP
    Some subcommands take artifact references as arguments. Artifacts
    can be specified in two ways:
.PP
    
    - artifact refs: triples of the form <project name>/<element name>/<cache key>
    - element names
.PP
    When elements are given, the artifact is looked up by observing the element
    and it's current cache key.
.PP
    The commands also support shell-style wildcard expansion: `?` matches a
    single character, `*` matches zero or more characters but does not match the `/`
    path separator, and `**` matches zero or more characters including `/` path separators.
.PP
    If the wildcard expression ends with `.bst`, then it will be used to search
    element names found in the project, otherwise, it will be used to search artifacts
    that are present in the local artifact cache.
.PP
    Some example arguments are:
.PP
    
    - `myproject/hello/8276376b077eda104c812e6ec2f488c7c9eea211ce572c83d734c10bf241209f`
    - `myproject/he*/827637*`
    - `core/*.bst` (all elements in the core directory)
    - `**.bst` (all elements)
    - `myproject/**` (all artifacts from myproject)
    - `myproject/myelement/*` (all cached artifacts for a specific element)
    
.SH COMMANDS
.PP
\fBshow\fP
  Show the cached state of artifacts
  See \fBbst artifact-show(1)\fP for full documentation on the \fBshow\fP command.
.PP
\fBcheckout\fP
  Checkout contents of an artifact
  See \fBbst artifact-checkout(1)\fP for full documentation on the \fBcheckout\fP command.
.PP
\fBpull\fP
  Pull a built artifact
  See \fBbst artifact-pull(1)\fP for full documentation on the \fBpull\fP command.
.PP
\fBpush\fP
  Push a built artifact
  See \fBbst artifact-push(1)\fP for full documentation on the \fBpush\fP command.
.PP
\fBlog\fP
  Show logs of artifacts
  See \fBbst artifact-log(1)\fP for full documentation on the \fBlog\fP command.
.PP
\fBlist-contents\fP
  List the contents of an artifact
  See \fBbst artifact-list-contents(1)\fP for full documentation on the \fBlist-contents\fP command.
.PP
\fBdelete\fP
  Remove artifacts from the local cache
  See \fBbst artifact-delete(1)\fP for full documentation on the \fBdelete\fP command.
