Skip to main content

Crate anodizer_stage_install_script

Crate anodizer_stage_install_script 

Source
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§

InstallScriptStage
The install-script pipeline 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.