Files
Docs/setup.sh

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