#!/usr/bin/env bash
#
# Jednokratno generisanje Android RELEASE keystore-a za BiznisPortal
# (rs.biznisportal.app). Pokreni LOKALNO, jednom. Rezultat je TAJNA:
#
#   • Bez ovog keystore-a + lozinki NIKADA više ne možeš da uploaduješ
#     update aplikacije na Play (Google ne dozvoljava zamenu upload ključa
#     bez podrške). Napravi backup na 2 mesta (npr. password manager + offline).
#   • Fajl se generiše VAN repozitorijuma. .gitignore već ignoriše *.keystore.
#   • Skript ODBIJA da prepiše postojeći keystore (zaštita od gubitka ključa).
#
# Posle generisanja ispisuje SHA-256 otisak — treba ti za App Links
# (assetlinks.json, docs/ANDROID_RELEASE.md §5) i Play App Signing.
#
set -euo pipefail

KEYSTORE_PATH="${ANDROID_KEYSTORE_FILE:-$HOME/biznisportal-release.keystore}"
KEY_ALIAS="${ANDROID_KEY_ALIAS:-biznisportal}"

if [[ -e "$KEYSTORE_PATH" ]]; then
  echo "❌ Keystore već postoji: $KEYSTORE_PATH" >&2
  echo "   Ne prepisujem ga (to bi trajno uništilo postojeći potpisni ključ)." >&2
  echo "   Ako baš želiš novi, ručno premesti stari na sigurno pa pokreni opet." >&2
  exit 1
fi

command -v keytool >/dev/null 2>&1 || {
  echo "❌ 'keytool' nije u PATH-u. Instaliraj JDK 21 (Temurin/Adoptium)." >&2
  exit 1
}

echo "▶ Generišem release keystore:"
echo "   Fajl : $KEYSTORE_PATH"
echo "   Alias: $KEY_ALIAS"
echo
echo "keytool će tražiti lozinku keystore-a i podatke (ime/organizacija)."
echo "Zapiši lozinku ODMAH na sigurno — bez nje nema update-a na Play."
echo

keytool -genkeypair -v \
  -keystore "$KEYSTORE_PATH" \
  -alias "$KEY_ALIAS" \
  -keyalg RSA -keysize 2048 -validity 10000

chmod 600 "$KEYSTORE_PATH"

echo
echo "✅ Keystore napravljen: $KEYSTORE_PATH (chmod 600)"
echo
echo "── SHA-256 otisak (za assetlinks.json / App Links) ──────────────────"
keytool -list -v -keystore "$KEYSTORE_PATH" -alias "$KEY_ALIAS" \
  | grep -i "SHA256:" || true
echo
echo "── Sledeći korak: izvezi env varijable pre release builda ───────────"
cat <<EOF
export ANDROID_KEYSTORE_FILE="$KEYSTORE_PATH"
export ANDROID_KEYSTORE_PASSWORD="<lozinka-koju-si-uneo>"
export ANDROID_KEY_ALIAS="$KEY_ALIAS"
export ANDROID_KEY_PASSWORD="<ista-ili-key-lozinka>"

# pa: npm run native:android:release
EOF
echo
echo "⚠ Backup keystore + lozinke na 2 mesta. Gubitak = kraj update-a na Play."
