#!/bin/bash # # JavaMail Installation für STARFACE # # Dieses Script installiert die JavaMail-Bibliothek auf einer STARFACE-Instanz. # Benötigt wird nur SSH-Zugriff auf die STARFACE. # # Verwendung: # ./install-javamail.sh # # Beispiel: # ./install-javamail.sh 192.168.1.100 # ./install-javamail.sh starface.example.com # set -e # Farben für Terminal-Ausgabe RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color # ============================================================ # Parameter prüfen # ============================================================ if [ $# -eq 0 ]; then echo -e "${RED}Fehler: Keine STARFACE-Adresse angegeben${NC}" echo "" echo "Verwendung:" echo " $0 " echo "" echo "Beispiel:" echo " $0 192.168.1.100" echo " $0 starface.example.com" exit 1 fi STARFACE_HOST=$1 SSH_USER="root" echo -e "${BLUE}========================================" echo -e " JavaMail Installation für STARFACE" echo -e "========================================${NC}" echo "" echo -e "STARFACE: ${GREEN}$STARFACE_HOST${NC}" echo -e "SSH-User: ${GREEN}$SSH_USER${NC}" echo "" # ============================================================ # SSH-Verbindung testen # ============================================================ echo -e "${YELLOW}Teste SSH-Verbindung...${NC}" if ! ssh -o ConnectTimeout=5 -o BatchMode=yes "${SSH_USER}@${STARFACE_HOST}" "exit" 2>/dev/null; then echo -e "${RED}Fehler: SSH-Verbindung fehlgeschlagen${NC}" echo "" echo "Mögliche Ursachen:" echo " - STARFACE nicht erreichbar" echo " - SSH-Key nicht konfiguriert" echo " - SSH-Dienst nicht erreichbar" echo " - Firewall blockiert Port 22" echo "" echo "Prüfe die Verbindung mit: ssh ${SSH_USER}@${STARFACE_HOST}" exit 1 fi echo -e "${GREEN}SSH-Verbindung erfolgreich${NC}" echo "" # ============================================================ # STARFACE-Bibliothekspfad ermitteln # ============================================================ LIB_PATH="/opt/tomcat/webapps/localhost/starface/WEB-INF/lib" echo -e "${YELLOW}Prüfe Verzeichnisstruktur...${NC}" if ! ssh "${SSH_USER}@${STARFACE_HOST}" "[ -d '$LIB_PATH' ]" 2>/dev/null; then echo -e "${RED}Fehler: STARFACE Bibliotheksverzeichnis nicht gefunden${NC}" echo "Erwartet: $LIB_PATH" exit 1 fi echo -e "Bibliothekspfad: ${GREEN}$LIB_PATH${NC}" echo "" # ============================================================ # Prüfen ob JavaMail bereits installiert ist # ============================================================ echo -e "${YELLOW}Prüfe ob JavaMail bereits installiert ist...${NC}" HAS_JAVAMAIL=$(ssh "${SSH_USER}@${STARFACE_HOST}" \ "ls $LIB_PATH/*mail*.jar 2>/dev/null | head -1" || true) if [ -n "$HAS_JAVAMAIL" ]; then echo -e "${GREEN}JavaMail bereits vorhanden:${NC}" ssh "${SSH_USER}@${STARFACE_HOST}" "ls -lh $LIB_PATH/*mail*.jar 2>/dev/null" | while read line; do filename=$(echo "$line" | awk '{print $NF}') size=$(echo "$line" | awk '{print $5}') basename_jar=$(basename "$filename") echo -e " ${GREEN}$basename_jar${NC} ($size)" done echo "" echo -e "${YELLOW}JavaMail ist bereits installiert. Beenden.${NC}" echo "" echo -e "${GREEN}Falls du die Installation erzwingen möchtest, lösche zuerst die vorhandenen Dateien:${NC}" echo " ssh ${SSH_USER}@${STARFACE_HOST} 'rm $LIB_PATH/*mail*.jar'" exit 0 fi echo -e "${YELLOW}JavaMail nicht gefunden - Installation wird gestartet...${NC}" echo "" # ============================================================ # JavaMail-Bibliotheken herunterladen # ============================================================ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" DEPS_DIR="$SCRIPT_DIR/javamail-deps" mkdir -p "$DEPS_DIR" echo -e "${YELLOW}Lade JavaMail-Bibliotheken herunter...${NC}" # javax.mail.jar if [ ! -f "$DEPS_DIR/javax.mail.jar" ]; then echo " Lade javax.mail.jar (1.6.2) herunter..." curl -sL -o "$DEPS_DIR/javax.mail.jar" \ "https://repo1.maven.org/maven2/com/sun/mail/javax.mail/1.6.2/javax.mail-1.6.2.jar" echo -e " ${GREEN}javax.mail.jar heruntergeladen${NC}" else echo -e " ${GREEN}javax.mail.jar bereits vorhanden${NC}" fi # activation.jar if [ ! -f "$DEPS_DIR/activation.jar" ]; then echo " Lade activation.jar (1.1.1) herunter..." curl -sL -o "$DEPS_DIR/activation.jar" \ "https://repo1.maven.org/maven2/javax/activation/activation/1.1.1/activation-1.1.1.jar" echo -e " ${GREEN}activation.jar heruntergeladen${NC}" else echo -e " ${GREEN}activation.jar bereits vorhanden${NC}" fi echo "" # ============================================================ # Auf STARFACE kopieren # ============================================================ echo -e "${YELLOW}Kopiere JavaMail-Bibliotheken auf STARFACE...${NC}" scp -q "$DEPS_DIR/javax.mail.jar" "${SSH_USER}@${STARFACE_HOST}:$LIB_PATH/" echo -e " ${GREEN}javax.mail.jar kopiert${NC}" scp -q "$DEPS_DIR/activation.jar" "${SSH_USER}@${STARFACE_HOST}:$LIB_PATH/" echo -e " ${GREEN}activation.jar kopiert${NC}" echo "" # ============================================================ # Erfolgsmeldung # ============================================================ echo -e "${BLUE}========================================" echo -e " Installation abgeschlossen!" echo -e "========================================${NC}" echo "" echo -e "${GREEN}JavaMail erfolgreich auf STARFACE installiert:${NC}" ssh "${SSH_USER}@${STARFACE_HOST}" "ls -lh $LIB_PATH/*mail*.jar $LIB_PATH/activation.jar 2>/dev/null" | while read line; do filename=$(echo "$line" | awk '{print $NF}') size=$(echo "$line" | awk '{print $5}') basename_jar=$(basename "$filename") echo -e " ${GREEN}$basename_jar${NC} ($size)" done echo "" echo -e "${YELLOW}WICHTIG: STARFACE-Dienst neustarten für Aktivierung:${NC}" echo " ssh ${SSH_USER}@${STARFACE_HOST} 'systemctl restart tomcat'" echo "" echo -e "${YELLOW}Nach dem Neustart kannst du das Mail2Fax-Modul verwenden!${NC}" echo ""