#!/usr/bin/env bash
# SOLO.YUN Linux 一键安装
# 用法：curl -fsSL https://solo.yun/install.sh | bash
set -euo pipefail

# 1. 检测架构（x86_64 → x64，aarch64 → arm64）
ARCH=$(uname -m | sed -e 's/x86_64/x64/' -e 's/aarch64/arm64/')

# 2. 调 API，取 linux-$ARCH 的下载地址和 SHA512
JSON=$(curl -fsSL "https://solo.yun/api/v1/apps/yun.solo.installer/latest?channel=stable")
SEG=$(printf '%s' "$JSON" | tr -d '\n' | grep -oE '"installerUrl":"[^"]*linux-'"$ARCH"'[^"]*".{0,400}' || true)
URL=$(printf '%s' "$SEG" | grep -oE '"installerUrl":"[^"]*"' | sed -E 's/.*"installerUrl":"([^"]*)"/\1/' || true)
SHA=$(printf '%s' "$SEG" | grep -oE '"sha512":"[^"]*"' | sed -E 's/.*"sha512":"([^"]*)"/\1/' || true)
[ -n "$URL" ] || { echo "错误：linux-$ARCH 暂未发布版本" >&2; exit 1; }
echo "已解析：linux-$ARCH → $URL"

# 3. 下载到 ~/.solo.yun（可用 SOLO_INSTALL_DIR 覆盖）并做 SHA512 校验
DIR=${SOLO_INSTALL_DIR:-$HOME/.solo.yun}
mkdir -p "$DIR"
FILE="$DIR/solo-installer-linux-$ARCH"
curl -fL -o "$FILE" "$URL"
chmod +x "$FILE"
[ -z "$SHA" ] || [ "$(sha512sum "$FILE" | awk '{print $1}')" = "$SHA" ] || { echo "错误：SHA512 校验失败" >&2; exit 1; }
echo "已就绪：$FILE"

# 4. 执行安装器
exec "$FILE"
