Expand description
The install-script stage: emit a deterministic POSIX install.sh
(curl | sh) release asset.
The per-platform os-arch → asset case table, the uname -s/uname -m
detection arms, and the supported-platform list are ALL derived from the
release’s configured targets by the engine
(anodizer_core::installer::render_installer_cases) — the same SSOT that
keeps cargo-binstall’s pkg_url from 404ing. The stage never reads produced
artifacts and never hand-rolls a uname/os/arch mapping, so its output is
byte-identical on every determinism shard regardless of which binaries that
shard compiled.
At run time (curl -fsSL .../install.sh | sh) the script detects the host
OS + architecture, maps it to the matching release archive, downloads and
(by default) sha256-verifies it, extracts the binary(ies), and installs
them — defaulting the release version to the latest GitHub release,
overridable via a VERSION= environment variable.
Everything the tool can compute is derived: the repository slug from the
git origin remote, the installed binary names from the project name, the
asset names from the configured targets, and the checksums filename and tag
prefix from the flagship crate that builds the project binary. A bare
install_scripts: {} produces a working installer with no required input.
Structs§
- Install
Script Stage - The
install-scriptpipeline stage.
Functions§
- env_
requirements - Build-time environment requirements. The install-script stage only writes a
text file — it spawns no external tool — so it needs none. Present for
symmetry with the other packaging stages and wired into
preflight.