6a42f58f5b
Co-authored-by: Cursor <cursoragent@cursor.com>
34 lines
1.1 KiB
Bash
34 lines
1.1 KiB
Bash
#!/usr/bin/env bash
|
|
# 本地根据 .env 渲染客户端配置(无需在 VPS 上运行)
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
ROOT_DIR="$(dirname "$SCRIPT_DIR")"
|
|
ENV_FILE="${ROOT_DIR}/.env"
|
|
OUT_DIR="${ROOT_DIR}/client/generated"
|
|
|
|
[[ -f "$ENV_FILE" ]] || { echo "缺少 .env,请先 cp .env.example .env 并填写"; exit 1; }
|
|
# shellcheck disable=SC1090
|
|
source "$ENV_FILE"
|
|
|
|
for var in DOMAIN HY2_PASSWORD; do
|
|
[[ -n "${!var:-}" ]] || { echo "缺少 .env 变量: $var"; exit 1; }
|
|
done
|
|
|
|
mkdir -p "$OUT_DIR"
|
|
|
|
HY2_PASSWORD_ENC="$(python3 -c "import sys, urllib.parse; print(urllib.parse.quote(sys.argv[1], safe=''))" "$HY2_PASSWORD")"
|
|
|
|
sed -e "s|\${DOMAIN}|${DOMAIN}|g" \
|
|
-e "s|\${HY2_PASSWORD}|${HY2_PASSWORD}|g" \
|
|
"$ROOT_DIR/client/sing-box-client.json.template" > "$OUT_DIR/sing-box-client.json"
|
|
|
|
cat > "$OUT_DIR/share-links.txt" <<EOF
|
|
========== Hysteria2 ==========
|
|
hy2://${HY2_PASSWORD_ENC}@${DOMAIN}:8443?sni=${DOMAIN}#Hysteria2
|
|
EOF
|
|
|
|
echo "已生成:"
|
|
echo " $OUT_DIR/sing-box-client.json"
|
|
echo " $OUT_DIR/share-links.txt"
|