starface-mail2fax/install-javamail.sh

187 lines
6.1 KiB
Bash
Executable File

#!/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 <starface-ip-oder-hostname>
#
# 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 <starface-ip-oder-hostname>"
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 ""