Estado base antes de integración Cognito.
Incluye admin web Spring Boot, API JWT para escáner y app Flutter qrscanner con login y escaneo de pases.
This commit is contained in:
Executable
+107
@@ -0,0 +1,107 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
MIN_JAVA_VERSION=25
|
||||
|
||||
is_valid_jdk() {
|
||||
[[ -n "${1:-}" && -x "$1/bin/java" ]]
|
||||
}
|
||||
|
||||
java_major_version() {
|
||||
"$1/bin/java" -version 2>&1 | awk -F '"' '/version/ { split($2, v, "."); print v[1]; exit }'
|
||||
}
|
||||
|
||||
collect_jdk_candidates() {
|
||||
local -a candidates=()
|
||||
|
||||
if [[ -n "${JAVA_HOME:-}" ]]; then
|
||||
candidates+=("$JAVA_HOME")
|
||||
fi
|
||||
|
||||
if compgen -G "/opt/jdk-*" > /dev/null; then
|
||||
while IFS= read -r jdk_dir; do
|
||||
candidates+=("$jdk_dir")
|
||||
done < <(ls -d /opt/jdk-* 2>/dev/null | sort -rV)
|
||||
fi
|
||||
|
||||
candidates+=(
|
||||
/usr/lib/jvm/java-25-temurin-jdk
|
||||
/usr/lib/jvm/java-21-temurin-jdk
|
||||
/usr/lib/jvm/java-21-openjdk-amd64
|
||||
)
|
||||
|
||||
printf '%s\n' "${candidates[@]}"
|
||||
}
|
||||
|
||||
resolve_java_home() {
|
||||
local candidate major_version
|
||||
local -A seen=()
|
||||
|
||||
if [[ -n "${JAVA_HOME:-}" && ! -x "${JAVA_HOME}/bin/java" ]]; then
|
||||
echo "JAVA_HOME actual ($JAVA_HOME) no es valido. Buscando otro JDK..." >&2
|
||||
fi
|
||||
|
||||
while IFS= read -r candidate; do
|
||||
[[ -n "$candidate" && -z "${seen[$candidate]+x}" ]] || continue
|
||||
seen[$candidate]=1
|
||||
|
||||
if ! is_valid_jdk "$candidate"; then
|
||||
continue
|
||||
fi
|
||||
|
||||
major_version="$(java_major_version "$candidate")"
|
||||
if (( major_version >= MIN_JAVA_VERSION )); then
|
||||
echo "$candidate"
|
||||
return 0
|
||||
fi
|
||||
done < <(collect_jdk_candidates)
|
||||
|
||||
while IFS= read -r candidate; do
|
||||
[[ -n "$candidate" && -z "${seen[$candidate]+x}" ]] || continue
|
||||
seen[$candidate]=1
|
||||
|
||||
if is_valid_jdk "$candidate"; then
|
||||
major_version="$(java_major_version "$candidate")"
|
||||
echo "Se encontro Java $major_version en $candidate, pero este proyecto requiere Java $MIN_JAVA_VERSION o superior." >&2
|
||||
return 1
|
||||
fi
|
||||
done < <(collect_jdk_candidates)
|
||||
|
||||
echo "No se encontro un JDK valido. Instala Temurin $MIN_JAVA_VERSION+ o define JAVA_HOME." >&2
|
||||
return 1
|
||||
}
|
||||
|
||||
JAVA_HOME="$(resolve_java_home)"
|
||||
export JAVA_HOME
|
||||
export PATH="$JAVA_HOME/bin:$PATH"
|
||||
|
||||
echo "Usando JAVA_HOME=$JAVA_HOME ($(java -version 2>&1 | head -1))" >&2
|
||||
|
||||
PROFILE="${SPRING_PROFILES_ACTIVE:-dev}"
|
||||
|
||||
echo "Perfil activo: $PROFILE" >&2
|
||||
if [[ "$PROFILE" == *"postgres"* ]]; then
|
||||
echo "Base de datos: PostgreSQL (${SPRING_DATASOURCE_URL:-jdbc:postgresql://localhost:5432/base_admin_web})" >&2
|
||||
else
|
||||
echo "Base de datos: H2 en archivo local (./data/h2/). Para PostgreSQL usa: SPRING_PROFILES_ACTIVE=postgres ./run-local.sh" >&2
|
||||
fi
|
||||
|
||||
if [[ "$PROFILE" == *"postgres"* ]]; then
|
||||
if command -v docker >/dev/null 2>&1; then
|
||||
if docker compose version >/dev/null 2>&1; then
|
||||
docker compose -f docker-compose-postgres.local.yml up -d
|
||||
else
|
||||
echo "Docker Compose no esta disponible. Instala Docker Compose o levanta PostgreSQL manualmente." >&2
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "Docker no esta disponible. Instala Docker o usa el perfil dev con H2." >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
cd "$SCRIPT_DIR"
|
||||
|
||||
mvn -pl base-admin-web-jar -am -DskipTests install
|
||||
mvn -pl base-admin-web-jar spring-boot:run
|
||||
Reference in New Issue
Block a user