v0.0.11 - Improve startup UX messaging and installer defaults: show mnemonic acceptance, readiness state, and auto-resolve latest release version

This commit is contained in:
Laan Tungir
2026-05-04 07:18:27 -04:00
parent c5fdb1a207
commit 3efb0edb61
2 changed files with 53 additions and 11 deletions

View File

@@ -13,14 +13,11 @@ set -euo pipefail
# bash install_qube_fips_nsigner.sh --help
#
# Optional env vars:
# NSIGNER_VERSION=v0.0.7
# NSIGNER_GITEA_TOKEN=<token> # if n_signer release assets are private
# NSIGNER_VERSION=vX.Y.Z # optional override; default is latest release tag
# NSIGNER_GITEA_TOKEN=<token> # if n_signer release assets are private
# NSIGNER_BINARY_URL=<direct url to nsigner_static_x86_64>
NSIGNER_VERSION="${NSIGNER_VERSION:-v0.0.7}"
NSIGNER_RELEASE_PAGE="https://git.laantungir.net/laantungir/n_signer/releases/tag/${NSIGNER_VERSION}"
NSIGNER_API_TAG_URL="https://git.laantungir.net/api/v1/repos/laantungir/n_signer/releases/tags/${NSIGNER_VERSION}"
NSIGNER_VERSION="${NSIGNER_VERSION:-}"
PREFIX_BIN="${HOME}/.local/bin"
@@ -40,8 +37,8 @@ Options:
-h, --help Show this help and exit
Optional env vars:
NSIGNER_VERSION=v0.0.7
NSIGNER_GITEA_TOKEN=<token> # required if n_signer release assets are private
NSIGNER_VERSION=vX.Y.Z # optional override; default is latest release tag
NSIGNER_GITEA_TOKEN=<token> # required if n_signer release assets are private
NSIGNER_BINARY_URL=<direct url to nsigner_static_x86_64>
Install paths:
@@ -75,21 +72,52 @@ prepare_dirs() {
mkdir -p "${PREFIX_BIN}"
}
download_nsigner_asset_url() {
resolve_nsigner_version() {
local headers=()
local latest_tag=""
if [[ -n "${NSIGNER_VERSION}" ]]; then
return 0
fi
if [[ -n "${NSIGNER_GITEA_TOKEN:-}" ]]; then
headers=(-H "Authorization: token ${NSIGNER_GITEA_TOKEN}")
fi
curl -fsSL "${headers[@]}" "${NSIGNER_API_TAG_URL}" \
latest_tag="$(curl -fsSL "${headers[@]}" "https://git.laantungir.net/api/v1/repos/laantungir/n_signer/releases" \
| jq -r '.[0].tag_name // empty' || true)"
if [[ -z "${latest_tag}" ]]; then
err "Could not resolve latest n_signer release tag from API."
err "Set NSIGNER_VERSION explicitly (e.g. NSIGNER_VERSION=v0.0.11)."
exit 1
fi
NSIGNER_VERSION="${latest_tag}"
}
download_nsigner_asset_url() {
local headers=()
local api_tag_url="https://git.laantungir.net/api/v1/repos/laantungir/n_signer/releases/tags/${NSIGNER_VERSION}"
if [[ -n "${NSIGNER_GITEA_TOKEN:-}" ]]; then
headers=(-H "Authorization: token ${NSIGNER_GITEA_TOKEN}")
fi
curl -fsSL "${headers[@]}" "${api_tag_url}" \
| jq -r '.assets[]?.browser_download_url // empty' \
| grep -E 'nsigner_static_x86_64$' \
| head -n1 || true
}
install_nsigner() {
local release_page=""
resolve_nsigner_version
release_page="https://git.laantungir.net/laantungir/n_signer/releases/tag/${NSIGNER_VERSION}"
log "Installing n_signer ${NSIGNER_VERSION}"
log "Release page: ${NSIGNER_RELEASE_PAGE}"
log "Release page: ${release_page}"
local asset_url="${NSIGNER_BINARY_URL:-}"
if [[ -z "${asset_url}" ]]; then