v0.0.24 - Fix stale release installs by validating installer version and hardening release artifact build/version checks
This commit is contained in:
@@ -110,6 +110,32 @@ download_nsigner_asset_url() {
|
||||
| head -n1 || true
|
||||
}
|
||||
|
||||
verify_installed_version() {
|
||||
local expected="$1"
|
||||
local got_line=""
|
||||
local got_ver=""
|
||||
|
||||
if [[ ! -x "${PREFIX_BIN}/nsigner" ]]; then
|
||||
err "Installed binary missing: ${PREFIX_BIN}/nsigner"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
got_line="$("${PREFIX_BIN}/nsigner" --version 2>/dev/null || true)"
|
||||
got_ver="$(printf '%s\n' "${got_line}" | awk '{print $2}')"
|
||||
|
||||
if [[ -z "${got_ver}" ]]; then
|
||||
err "Could not determine installed n_signer version from: ${got_line}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ "${got_ver}" != "${expected}" ]]; then
|
||||
err "Downloaded binary version mismatch: expected ${expected}, got ${got_ver}"
|
||||
err "Release asset appears stale or mislabeled."
|
||||
err "Use NSIGNER_BINARY_URL to pin a known-good binary, or wait for a rebuilt release artifact."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
install_nsigner() {
|
||||
local release_page=""
|
||||
|
||||
@@ -137,6 +163,8 @@ install_nsigner() {
|
||||
curl -fL -o "${PREFIX_BIN}/nsigner" "${asset_url}"
|
||||
fi
|
||||
chmod 0755 "${PREFIX_BIN}/nsigner"
|
||||
|
||||
verify_installed_version "${NSIGNER_VERSION}"
|
||||
log "Installed ${PREFIX_BIN}/nsigner from release binary"
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user