Add wget/curl fallback for vendor and update downloads
This commit is contained in:
@@ -12,6 +12,21 @@ TMP_BIN="/tmp/bee-audit-new"
|
|||||||
TMP_SIG="/tmp/bee-audit-new.sig"
|
TMP_SIG="/tmp/bee-audit-new.sig"
|
||||||
REPO_API="${BEE_RELEASE_API:-https://git.mchus.pro/api/v1/repos/<org>/bee/releases/latest}"
|
REPO_API="${BEE_RELEASE_API:-https://git.mchus.pro/api/v1/repos/<org>/bee/releases/latest}"
|
||||||
|
|
||||||
|
download_to() {
|
||||||
|
url="$1"
|
||||||
|
out="$2"
|
||||||
|
if command -v wget >/dev/null 2>&1; then
|
||||||
|
wget -q -O "$out" "$url"
|
||||||
|
return $?
|
||||||
|
fi
|
||||||
|
if command -v curl >/dev/null 2>&1; then
|
||||||
|
curl -fsSL "$url" -o "$out"
|
||||||
|
return $?
|
||||||
|
fi
|
||||||
|
log "neither wget nor curl available"
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
version_of() {
|
version_of() {
|
||||||
"$1" --version 2>/dev/null | head -n1 | tr -d '[:space:]'
|
"$1" --version 2>/dev/null | head -n1 | tr -d '[:space:]'
|
||||||
}
|
}
|
||||||
@@ -65,8 +80,8 @@ check_network_update() {
|
|||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! command -v wget >/dev/null 2>&1; then
|
if ! command -v wget >/dev/null 2>&1 && ! command -v curl >/dev/null 2>&1; then
|
||||||
log "wget not found; skip network update"
|
log "neither wget nor curl found; skip network update"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
if ! command -v jq >/dev/null 2>&1; then
|
if ! command -v jq >/dev/null 2>&1; then
|
||||||
@@ -75,7 +90,7 @@ check_network_update() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
meta="/tmp/bee-release-latest.json"
|
meta="/tmp/bee-release-latest.json"
|
||||||
wget -q -O "$meta" "$REPO_API" || { log "failed to fetch release metadata"; return 1; }
|
download_to "$REPO_API" "$meta" || { log "failed to fetch release metadata"; return 1; }
|
||||||
|
|
||||||
tag=$(jq -r '.tag_name // empty' "$meta")
|
tag=$(jq -r '.tag_name // empty' "$meta")
|
||||||
[ -n "$tag" ] || { log "release metadata missing tag_name"; return 1; }
|
[ -n "$tag" ] || { log "release metadata missing tag_name"; return 1; }
|
||||||
@@ -90,8 +105,8 @@ check_network_update() {
|
|||||||
sig_url=$(jq -r '.assets[]? | select(.name=="bee-audit-linux-amd64.sig") | .browser_download_url // empty' "$meta")
|
sig_url=$(jq -r '.assets[]? | select(.name=="bee-audit-linux-amd64.sig") | .browser_download_url // empty' "$meta")
|
||||||
[ -n "$bin_url" ] && [ -n "$sig_url" ] || { log "missing release asset URLs"; return 1; }
|
[ -n "$bin_url" ] && [ -n "$sig_url" ] || { log "missing release asset URLs"; return 1; }
|
||||||
|
|
||||||
wget -q -O "$TMP_BIN" "$bin_url" || return 1
|
download_to "$bin_url" "$TMP_BIN" || return 1
|
||||||
wget -q -O "$TMP_SIG" "$sig_url" || return 1
|
download_to "$sig_url" "$TMP_SIG" || return 1
|
||||||
chmod +x "$TMP_BIN"
|
chmod +x "$TMP_BIN"
|
||||||
|
|
||||||
log "network update candidate: $tag"
|
log "network update candidate: $tag"
|
||||||
|
|||||||
@@ -18,9 +18,23 @@ need_cmd() {
|
|||||||
command -v "$1" >/dev/null 2>&1 || { echo "ERROR: required command not found: $1" >&2; exit 1; }
|
command -v "$1" >/dev/null 2>&1 || { echo "ERROR: required command not found: $1" >&2; exit 1; }
|
||||||
}
|
}
|
||||||
|
|
||||||
need_cmd wget
|
|
||||||
need_cmd sha256sum
|
need_cmd sha256sum
|
||||||
|
|
||||||
|
download_to() {
|
||||||
|
url="$1"
|
||||||
|
out="$2"
|
||||||
|
if command -v wget >/dev/null 2>&1; then
|
||||||
|
wget -O "$out" "$url"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
if command -v curl >/dev/null 2>&1; then
|
||||||
|
curl -fsSL "$url" -o "$out"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
echo "ERROR: required command not found: wget or curl" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
fetch_one() {
|
fetch_one() {
|
||||||
name="$1"
|
name="$1"
|
||||||
url="$2"
|
url="$2"
|
||||||
@@ -35,7 +49,7 @@ fetch_one() {
|
|||||||
tmp="$dst.tmp"
|
tmp="$dst.tmp"
|
||||||
|
|
||||||
echo "[vendor] downloading $name"
|
echo "[vendor] downloading $name"
|
||||||
wget -O "$tmp" "$url"
|
download_to "$url" "$tmp"
|
||||||
|
|
||||||
got=$(sha256sum "$tmp" | awk '{print $1}')
|
got=$(sha256sum "$tmp" | awk '{print $1}')
|
||||||
want=$(echo "$sha" | tr '[:upper:]' '[:lower:]')
|
want=$(echo "$sha" | tr '[:upper:]' '[:lower:]')
|
||||||
|
|||||||
Reference in New Issue
Block a user