#!/usr/bin/env bash set -Eeuo pipefail VERSION="v0.1.0" BASE_URL="${DASHEN_DGX_SPARK_BASE_URL:-https://dashen.wang/gpu/dgx-spark}" OUTPUT_DIR="${DASHEN_DGX_SPARK_OUTPUT_DIR:-$PWD}" TMPDIR_SPARK="$(mktemp -d -t dashen-dgx-spark.XXXXXX)" cleanup(){ rm -f "$TMPDIR_SPARK/test.sh" "$TMPDIR_SPARK/SHA256SUMS" rmdir "$TMPDIR_SPARK" 2>/dev/null || true } trap cleanup EXIT INT TERM fetch(){ local url="$1" out="$2" if command -v curl >/dev/null 2>&1; then curl -fL --retry 2 --connect-timeout 10 --max-time 120 "$url" -o "$out" elif command -v wget >/dev/null 2>&1; then wget -q --timeout=120 -O "$out" "$url" else echo "缺少 curl 或 wget,无法下载验机程序。" >&2 exit 2 fi } ENGINE="$TMPDIR_SPARK/test.sh" SUMS="$TMPDIR_SPARK/SHA256SUMS" fetch "$BASE_URL/releases/$VERSION/test.sh" "$ENGINE" fetch "$BASE_URL/releases/$VERSION/SHA256SUMS" "$SUMS" command -v sha256sum >/dev/null 2>&1 || { echo "缺少 sha256sum,拒绝执行未校验脚本。" >&2; exit 2; } ( cd "$TMPDIR_SPARK" && sha256sum -c SHA256SUMS ) DASHEN_DGX_SPARK_OUTPUT_DIR="$OUTPUT_DIR" bash "$ENGINE" "$@"