Documentation

whitehall add

Add a component to an app, or a package to a tool.

Usage

whitehall add <name>… [--manifest <path>]

What add adds depends on what the directory is. In an app — a manifest with [screen] — it adds components. In a tool it adds packages.

In an app: components

whitehall add button

This copies the component into src/lib/components/ui/, shadcn's npx shadcn add. The file is the app's from then on: edit it, restyle it, delete it. Import it like any other file of yours:

import $lib.components.ui.Button

A component you added reads the theme through its own classes, whatever the preset. The components that are still built in are switched by the preset instead; see Theming.

A second add of the same component refuses rather than overwrite it. The file may hold your changes, and a command that replaced it would lose them silently.

In a tool: packages

whitehall add ffmpeg
whitehall add ffmpeg@8.1
whitehall remove ffmpeg
whitehall update

In a tool, add is cargo add's shape, for [packages] in whitehall.toml. It resolves the name against the Termux package index, writes the version it resolved, and writes the lock. name@version pins a prefix.

CommandWhat it does
add <pkg>…Add packages to [packages]
remove <pkg>…Take a package back out. Alias rm
update [pkg]…Re-resolve the lock. With no package, every one; with one, that package and what it pulls in

--manifest takes a whitehall.toml, or the script whose header holds the declarations. It parses wherever you write it on the line.

       Added ffmpeg 8.1.2
     Removed ffmpeg
     Updated ffmpeg 8.1.2 → 8.1.3
       Fresh packages unchanged

Libraries for an app

An app's build never opens [packages]. In an app, remove and update refuse and name deps, and the Maven libraries an app uses go through whitehall deps:

CommandWhat it does
deps add <dep>Add a dependency to whitehall.toml, resolving the version
deps add --dev <dep>Add as a test dependency
deps remove <dep>Remove one. Alias rm
deps listList every dependency with its resolved version. Alias ls

Given a Maven coordinate, the top-level add, remove and update print the deps spelling and exit 1.

See Also