82 lines
1.8 KiB
Bash
82 lines
1.8 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# Downloads release assets (parts + join.sh) and assembles dle-template.tar.gz.
|
|
# Requirements: bash, curl, python3
|
|
|
|
OWNER="VC-HB3-Accelerator"
|
|
REPO="Docs"
|
|
TAG="v1.0.3"
|
|
BASE="https://xn--80aqc0am6d.xn--p1ai/gitea"
|
|
|
|
OUT_DIR="${1:-downloads}"
|
|
|
|
mkdir -p "$OUT_DIR"
|
|
cd "$OUT_DIR"
|
|
|
|
echo "Fetching release assets list: ${OWNER}/${REPO} ${TAG}"
|
|
|
|
python3 - <<'PY'
|
|
import json
|
|
import os
|
|
import sys
|
|
import urllib.request
|
|
|
|
base = os.environ.get("BASE")
|
|
owner = os.environ.get("OWNER")
|
|
repo = os.environ.get("REPO")
|
|
tag = os.environ.get("TAG")
|
|
|
|
url = f"{base}/api/v1/repos/{owner}/{repo}/releases/tags/{tag}"
|
|
|
|
with urllib.request.urlopen(url, timeout=60) as r:
|
|
payload = json.loads(r.read().decode("utf-8"))
|
|
|
|
assets = payload.get("assets") or []
|
|
|
|
need_prefixes = (
|
|
"dle-template.tar.gz.part-",
|
|
"dle-template.tar.gz.join.sh",
|
|
)
|
|
|
|
picked = []
|
|
for a in assets:
|
|
name = a.get("name") or ""
|
|
if name.startswith(need_prefixes):
|
|
picked.append((name, a.get("browser_download_url") or ""))
|
|
|
|
if not picked:
|
|
raise SystemExit("No matching assets found in release (expected join.sh and part-*).")
|
|
|
|
picked.sort(key=lambda t: t[0])
|
|
for name, url in picked:
|
|
if not url:
|
|
raise SystemExit(f"Missing browser_download_url for asset: {name}")
|
|
print(f"{name}\t{url}")
|
|
PY > .assets.tsv
|
|
|
|
export BASE OWNER REPO TAG
|
|
|
|
echo "Downloading assets to: $(pwd)"
|
|
|
|
while IFS=$'\t' read -r name url; do
|
|
if [[ -f "$name" ]]; then
|
|
echo "Skip (exists): $name"
|
|
continue
|
|
fi
|
|
echo "Download: $name"
|
|
curl -fL --retry 5 --retry-delay 2 -o "$name" "$url"
|
|
done < .assets.tsv
|
|
|
|
if [[ ! -f "dle-template.tar.gz.join.sh" ]]; then
|
|
echo "ERROR: dle-template.tar.gz.join.sh not found after download" >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "Assembling dle-template.tar.gz"
|
|
bash dle-template.tar.gz.join.sh
|
|
|
|
echo "Done."
|
|
ls -lh dle-template.tar.gz 2>/dev/null || true
|
|
|