187 lines
6.1 KiB
Bash
Executable File
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 ""
|