Documentation
¶
Overview ¶
Package kit is lath's library collection.
Where does a package go? ¶
One question decides it: does it import pipeline?
- No → it is a library. It belongs here, and any Go program can use it whether or not that program uses lath.
- Yes → it is a pipeline adapter. It belongs in steps.
That is the whole rule, and it replaced one that did not survive contact. The earlier rule was "nothing in kit may name a vendor", which put docker and git in separate modules, while kit itself was already shelling out to pgrep, ps, ssh, scp and sh. The distinction it claimed to draw did not exist, and the layout it produced could not be explained.
What a kit package may depend on ¶
Anything in the standard library, other kit packages, and external PROGRAMS it documents at the point of use. Nothing else: no third-party Go modules, and never pipeline.
Depending on an external program is normal here and always has been, proc needs pgrep, lock needs ps, ssh needs ssh. What matters is that the package says so, reports a clear error when the program is absent, and does not pretend to work without it.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package archive writes and reads tar.gz bundles.
|
Package archive writes and reads tar.gz bundles. |
|
Package argv splits a command's arguments into positionals and flags, and refuses a flag the command does not know.
|
Package argv splits a command's arguments into positionals and flags, and refuses a flag the command does not know. |
|
Package brew renders a Homebrew formula for a released binary.
|
Package brew renders a Homebrew formula for a released binary. |
|
Package caddy installs configuration into a running Caddy and reloads it.
|
Package caddy installs configuration into a running Caddy and reloads it. |
|
Package certs makes the private key and signing request a certificate authority asks for.
|
Package certs makes the private key and signing request a certificate authority asks for. |
|
Package checksum writes and verifies the manifest that ships beside release artifacts.
|
Package checksum writes and verifies the manifest that ships beside release artifacts. |
|
Package cloudflare manages Cloudflare DNS records.
|
Package cloudflare manages Cloudflare DNS records. |
|
Package confirm gates dangerous actions behind an operator's explicit answer.
|
Package confirm gates dangerous actions behind an operator's explicit answer. |
|
Package docker drives the docker CLI.
|
Package docker drives the docker CLI. |
|
Package download fetches a URL to a file, verifying it before it lands.
|
Package download fetches a URL to a file, verifying it before it lands. |
|
Package env reads environment variables with errors worth reading.
|
Package env reads environment variables with errors worth reading. |
|
Package fsx holds the file operations with traps in them.
|
Package fsx holds the file operations with traps in them. |
|
Package git reads the state of a git working tree, and writes to one when a caller asks it to.
|
Package git reads the state of a git working tree, and writes to one when a caller asks it to. |
|
Package github publishes releases and their artifacts.
|
Package github publishes releases and their artifacts. |
|
Package golang compiles Go binaries on this machine, for an image to copy rather than build.
|
Package golang compiles Go binaries on this machine, for an image to copy rather than build. |
|
Package hashtree builds content digests for cache keys.
|
Package hashtree builds content digests for cache keys. |
|
internal
|
|
|
fsprobe
Package fsprobe answers what the filesystem under a test will actually enforce, so a test can skip on a fact rather than on a guess about the platform.
|
Package fsprobe answers what the filesystem under a test will actually enforce, so a test can skip on a fact rather than on a guess about the platform. |
|
Package lock provides a single-instance guard backed by a file.
|
Package lock provides a single-instance guard backed by a file. |
|
Package out writes task output.
|
Package out writes task output. |
|
Package proc runs programs.
|
Package proc runs programs. |
|
Package remotefs performs filesystem operations wherever a Runner points.
|
Package remotefs performs filesystem operations wherever a Runner points. |
|
Package repo locates the repository a task is running in.
|
Package repo locates the repository a task is running in. |
|
Package runner decides where a command executes.
|
Package runner decides where a command executes. |
|
Package scan walks a tree and matches file contents.
|
Package scan walks a tree and matches file contents. |
|
Package secret holds credentials and the operations a pipeline performs on them: carrying one without leaking it, grouping them, and reconciling a group against wherever they must be stored.
|
Package secret holds credentials and the operations a pipeline performs on them: carrying one without leaking it, grouping them, and reconciling a group against wherever they must be stored. |
|
Package session advertises a running process's endpoint so another process can find and attach to it.
|
Package session advertises a running process's endpoint so another process can find and attach to it. |
|
Package settings reads deploy-time configuration from a file that the environment can override.
|
Package settings reads deploy-time configuration from a file that the environment can override. |
|
Package ssh runs commands on another machine.
|
Package ssh runs commands on another machine. |
|
Package supervise keeps something running.
|
Package supervise keeps something running. |
|
Package wait polls for a condition.
|
Package wait polls for a condition. |