version 0.0.0.3
This commit is contained in:
Executable
+93
@@ -0,0 +1,93 @@
|
||||
#!/usr/bin/env bash
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
# ARIA — Token + QR-Code Generator
|
||||
# Läuft auf der ARIA-VM. Erzeugt ein permanentes Pairing-Token.
|
||||
#
|
||||
# Verwendung:
|
||||
# ./generate-token.sh # neues Token generieren
|
||||
# ./generate-token.sh show # bestehendes Token als QR zeigen
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
ENV_FILE="$SCRIPT_DIR/.env"
|
||||
|
||||
# ── .env laden (falls vorhanden) ─────────────────────────────
|
||||
if [[ -f "$ENV_FILE" ]]; then
|
||||
# shellcheck disable=SC1090
|
||||
source "$ENV_FILE"
|
||||
fi
|
||||
|
||||
# ── Pflichtfelder prüfen ─────────────────────────────────────
|
||||
if [[ -z "${RVS_HOST:-}" ]]; then
|
||||
echo "Fehler: RVS_HOST ist nicht gesetzt."
|
||||
echo "Trage RVS_HOST in .env ein, z.B.: RVS_HOST=rvs.hackersoft.de"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
HOST="$RVS_HOST"
|
||||
PORT="${RVS_PORT:-443}"
|
||||
TLS="${RVS_TLS:-true}"
|
||||
|
||||
# ── Modus: show (bestehendes Token) oder neu generieren ─────
|
||||
if [[ "${1:-}" == "show" ]]; then
|
||||
if [[ -z "${RVS_TOKEN:-}" ]]; then
|
||||
echo "Fehler: Kein RVS_TOKEN in .env gefunden. Erst generieren:"
|
||||
echo " ./generate-token.sh"
|
||||
exit 1
|
||||
fi
|
||||
TOKEN="$RVS_TOKEN"
|
||||
echo ""
|
||||
echo "═══════════════════════════════════════════════════"
|
||||
echo " ARIA — Bestehendes Pairing-Token"
|
||||
echo "═══════════════════════════════════════════════════"
|
||||
else
|
||||
# Neues Token generieren
|
||||
TOKEN=$(openssl rand -hex 32)
|
||||
|
||||
echo ""
|
||||
echo "═══════════════════════════════════════════════════"
|
||||
echo " ARIA — Neues Pairing-Token generiert"
|
||||
echo "═══════════════════════════════════════════════════"
|
||||
|
||||
# Token in .env schreiben
|
||||
if grep -q "^RVS_TOKEN=" "$ENV_FILE" 2>/dev/null; then
|
||||
sed -i "s|^RVS_TOKEN=.*|RVS_TOKEN=$TOKEN|" "$ENV_FILE"
|
||||
else
|
||||
echo "RVS_TOKEN=$TOKEN" >> "$ENV_FILE"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo " ✓ RVS_TOKEN in .env gespeichert"
|
||||
echo " → Bridge neu starten: docker compose restart bridge"
|
||||
fi
|
||||
|
||||
# ── QR-Payload bauen ─────────────────────────────────────────
|
||||
PAYLOAD="{\"host\":\"$HOST\",\"port\":$PORT,\"token\":\"$TOKEN\",\"tls\":$TLS}"
|
||||
|
||||
echo ""
|
||||
echo " Host: $HOST"
|
||||
echo " Port: $PORT"
|
||||
echo " TLS: $TLS"
|
||||
echo " Token: ${TOKEN:0:16}..."
|
||||
echo ""
|
||||
echo " QR-Code scannen mit der ARIA App:"
|
||||
echo ""
|
||||
|
||||
# ── QR-Code anzeigen ─────────────────────────────────────────
|
||||
if command -v qrencode &>/dev/null; then
|
||||
qrencode -t ANSIUTF8 "$PAYLOAD"
|
||||
elif command -v npx &>/dev/null; then
|
||||
npx --yes qrcode-terminal@0.12.0 "$PAYLOAD" --small 2>/dev/null
|
||||
else
|
||||
echo " (Kein QR-Tool gefunden — installiere qrencode oder npx)"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo " Payload: $PAYLOAD"
|
||||
echo ""
|
||||
echo " Token kopieren:"
|
||||
echo " $TOKEN"
|
||||
echo ""
|
||||
echo "═══════════════════════════════════════════════════"
|
||||
echo ""
|
||||
Reference in New Issue
Block a user