|
| 1 | +#!/bin/bash |
| 2 | +# Brarner.M.Alete™ — Quick Local Deploy (exploded, no WAR) |
| 3 | +# Copies webapp directly to Tomcat webapps for immediate serving. |
| 4 | +# Usage: sudo bash install/deploy-local.sh [tomcat_home] |
| 5 | +set -e |
| 6 | + |
| 7 | +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" |
| 8 | +BMA_ROOT="$(dirname "$SCRIPT_DIR")" |
| 9 | +WEBAPP_SRC="$BMA_ROOT/servlets/servlet/src/main/webapp" |
| 10 | +TOMCAT_HOME="${1:-${CATALINA_HOME:-/opt/tomcat}}" |
| 11 | +CONTEXT="brarner.m.alete" |
| 12 | +DEPLOY_DIR="$TOMCAT_HOME/webapps/$CONTEXT" |
| 13 | + |
| 14 | +echo "═══════════════════════════════════════════════════════════════" |
| 15 | +echo " Brarner.M.Alete™ — Quick Local Deploy" |
| 16 | +echo " Source: $WEBAPP_SRC" |
| 17 | +echo " Target: $DEPLOY_DIR" |
| 18 | +echo "═══════════════════════════════════════════════════════════════" |
| 19 | + |
| 20 | +if [ ! -d "$WEBAPP_SRC" ]; then |
| 21 | + echo "[!] Webapp source not found: $WEBAPP_SRC" |
| 22 | + exit 1 |
| 23 | +fi |
| 24 | + |
| 25 | +if [ ! -d "$TOMCAT_HOME/webapps" ]; then |
| 26 | + echo "[!] Tomcat not found at: $TOMCAT_HOME" |
| 27 | + echo " Set CATALINA_HOME or pass path: sudo bash install/deploy-local.sh /path/to/tomcat" |
| 28 | + exit 1 |
| 29 | +fi |
| 30 | + |
| 31 | +# Deploy exploded webapp |
| 32 | +echo "[*] Deploying exploded webapp..." |
| 33 | +rm -rf "$DEPLOY_DIR" |
| 34 | +mkdir -p "$DEPLOY_DIR/WEB-INF/classes" "$DEPLOY_DIR/WEB-INF/lib" |
| 35 | +cp -r "$WEBAPP_SRC/"* "$DEPLOY_DIR/" |
| 36 | + |
| 37 | +# Copy MySQL connector if available |
| 38 | +if ls "$BMA_ROOT/lib/mysql-connector-j-"*.jar &>/dev/null; then |
| 39 | + cp "$BMA_ROOT/lib/mysql-connector-j-"*.jar "$DEPLOY_DIR/WEB-INF/lib/" |
| 40 | + echo "[*] MySQL connector JAR copied to WEB-INF/lib/" |
| 41 | +fi |
| 42 | + |
| 43 | +# Compile servlets if javac available and sources exist |
| 44 | +SERVLET_SRC="$BMA_ROOT/servlets/servlet/src/main/java" |
| 45 | +if [ -d "$SERVLET_SRC" ] && command -v javac &>/dev/null; then |
| 46 | + echo "[*] Compiling servlet classes..." |
| 47 | + find "$SERVLET_SRC" -name "*.java" > /tmp/bma-sources.txt |
| 48 | + if [ -s /tmp/bma-sources.txt ]; then |
| 49 | + CP="$DEPLOY_DIR/WEB-INF/lib/*" |
| 50 | + # Add Jakarta Servlet API from lib if present |
| 51 | + [ -d "$BMA_ROOT/lib" ] && CP="$BMA_ROOT/lib/*:$CP" |
| 52 | + javac -d "$DEPLOY_DIR/WEB-INF/classes" -cp "$CP" @/tmp/bma-sources.txt 2>/dev/null && \ |
| 53 | + echo "[*] Servlets compiled" || \ |
| 54 | + echo "[!] Servlet compilation failed (JSP pages still work without servlets)" |
| 55 | + rm -f /tmp/bma-sources.txt |
| 56 | + fi |
| 57 | +fi |
| 58 | + |
| 59 | +# Fix ownership |
| 60 | +chown -R tomcat:tomcat "$DEPLOY_DIR" 2>/dev/null || true |
| 61 | + |
| 62 | +echo "" |
| 63 | +echo "[✓] Deployed to: $DEPLOY_DIR" |
| 64 | +echo "" |
| 65 | +echo " JSP: index.jsp, species.jsp, postal.jsp, art.jsp, science.jsp, status.jsp" |
| 66 | +echo " XHTML: index.xhtml, species.xhtml, postal.xhtml, art.xhtml, science.xhtml, status.xhtml" |
| 67 | +echo " DB: WEB-INF/db.properties" |
| 68 | +echo "" |
| 69 | +echo " URL: http://localhost:8080/$CONTEXT/" |
| 70 | +echo "" |
| 71 | +echo " If Tomcat is running, pages are available immediately." |
| 72 | +echo " Otherwise: sudo systemctl start tomcat" |
| 73 | +echo "═══════════════════════════════════════════════════════════════" |
0 commit comments