Skip to content

Everyday tools ​

Functions of the tools module at v0.7.0. Each returns what a command runs in; import it with import * as tools from "tools".

unix.env ​

A shell with the everyday command-line tools, in one image.

lask
unix.env(
  --base_access: String | Map<String> | Null = null,
  --with: Array<Record<env: Map<String>, volumes: Array<String>>> = [],
  --extra_env: Map<String> = {}
): Runnable

A command string runs in one environment, so curl -s ... | jq -r .id needs curl and jq in the same image; this is that image. It holds bash, curl, wget, openssl, jq, yq, envsubst, GNU coreutils, findutils, grep, sed and awk, diff, file, tar, gzip, xz, bzip2, zip and unzip, rsync, make, and the SSH client; and git, gh and glab, which git.env(), gh.env() and glab.env() configure.

The image is built from lib/images/unix/Dockerfile, Alpine 3.24 pinned by its digest, so it takes no --image: the recipe is what fixes it, and lask sync builds it once per machine (lask spec 10.3). A run never builds.

Parameters

  • --base_access What the container may do with the project directory: "rw" (the default), "ro", "none", or a table of paths such as {".": "ro", "dist": "rw"} (lask spec 10.2).
  • --with Setups of other tools this environment should also carry.
  • --extra_env Any other variable, e.g. HTTPS_PROXY; below --with.

Returns Runnable: The environment, for command { "curl" } on ... or $[...].

Image recipe lib/images/unix/Dockerfile

Command words bzip2, curl, envsubst, gzip, jq, openssl, rsync, tar, unzip, wget, xz, yq, zip: import command { "bzip2", "curl", "envsubst", "gzip", "jq", "openssl", "rsync", "tar", "unzip", "wget", "xz", "yq", "zip" } from "tools"

bash
lask eval unix.env

lib/unix.lask

Released under the MIT License.