🎉 Improved IHK Project Documentation and Logs for smoother installation process 📚💄

This commit is contained in:
2025-06-03 21:34:13 +02:00
parent 690aa8835e
commit 19951ba6e4
5 changed files with 101 additions and 72 deletions

View File

@@ -1890,65 +1890,82 @@ EOF
debug "WSL-Umgebung erkannt - verwende angepasste Bash-Profile-Logik"
fi
# Definiere die zu prüfenden Verzeichnisse basierend auf der Umgebung
local home_dirs=()
if [ "$is_wsl" = true ]; then
# In WSL nur das aktuelle Benutzerverzeichnis verwenden
if [ -n "${HOME:-}" ] && [ -d "$HOME" ]; then
home_dirs=("$HOME")
fi
# Füge /root nur hinzu wenn wir als root laufen
if [ "$(id -u)" = "0" ] && [ -d "/root" ] && [ -w "/root" ]; then
home_dirs+=("/root")
fi
else
# Standard-Verhalten für echtes Linux
home_dirs=("/root")
# Füge alle Home-Verzeichnisse hinzu, aber mit Timeout
while IFS= read -r -d '' user_home; do
if [ "$user_home" != "/home/lost+found" ]; then
home_dirs+=("$user_home")
fi
done < <(find /home -maxdepth 1 -type d -print0 2>/dev/null | head -20)
fi
# Definiere die zu prüfenden Verzeichnisse basierend auf der Umgebung
local home_dirs=()
if [ "$is_wsl" = true ]; then
# In WSL nur das aktuelle Benutzerverzeichnis verwenden
if [ -n "${HOME:-}" ] && [ -d "$HOME" ]; then
home_dirs=("$HOME")
fi
# Füge /root nur hinzu wenn wir als root laufen
if [ "$(id -u)" = "0" ] && [ -d "/root" ] && [ -w "/root" ]; then
home_dirs+=("/root")
fi
else
# Standard-Verhalten für echtes Linux
home_dirs=("/root")
# Füge nur existierende Home-Verzeichnisse hinzu (max 5)
local count=0
for user_home in /home/*; do
if [ -d "$user_home" ] && [ "$user_home" != "/home/lost+found" ]; then
home_dirs+=("$user_home")
((count++))
if [ $count -ge 5 ]; then
debug "Limitiere auf 5 Home-Verzeichnisse"
break
fi
fi
done
fi
debug "Aktualisiere Bash-Profile für ${#home_dirs[@]} Verzeichnisse"
# Aktualisiere Bash-Profile mit Timeout
for user_home in "${home_dirs[@]}"; do
if [ -d "$user_home" ] && [ -w "$user_home" ]; then
# Prüfe ob .bashrc existiert und lesbar ist
if [ -f "$user_home/.bashrc" ] && [ -r "$user_home/.bashrc" ]; then
# Verwende timeout um hängende Operationen zu vermeiden
if timeout 5s grep -q "MYP Application Environment" "$user_home/.bashrc" 2>/dev/null; then
debug "Bash-Profile bereits konfiguriert: $user_home/.bashrc"
else
# Schreibe mit timeout und prüfe Erfolg
if timeout 5s bash -c "cat >> '$user_home/.bashrc' << 'EOF'
# Aktualisiere Bash-Profile (vereinfacht)
for user_home in "${home_dirs[@]}"; do
if [ -d "$user_home" ] && [ -w "$user_home" ]; then
local bashrc_file="$user_home/.bashrc"
# Prüfe ob .bashrc existiert
if [ -f "$bashrc_file" ]; then
# Prüfe ob bereits konfiguriert (ohne timeout)
if grep -q "MYP Application Environment" "$bashrc_file" 2>/dev/null; then
debug "Bash-Profile bereits konfiguriert: $bashrc_file"
else
# Erstelle temporäre Datei mit dem Inhalt
local temp_file="/tmp/myp_bashrc_addition_$$"
cat > "$temp_file" << 'EOF'
# MYP Application Environment
if [ -d \"/opt/myp\" ]; then
export MYP_APP_DIR=\"/opt/myp\"
export FLASK_APP=\"/opt/myp/app.py\"
export FLASK_ENV=\"production\"
if [ -z \"\${PYTHONPATH:-}\" ]; then
export PYTHONPATH=\"/opt/myp\"
if [ -d "/opt/myp" ]; then
export MYP_APP_DIR="/opt/myp"
export FLASK_APP="/opt/myp/app.py"
export FLASK_ENV="production"
if [ -z "${PYTHONPATH:-}" ]; then
export PYTHONPATH="/opt/myp"
else
export PYTHONPATH=\"/opt/myp:\$PYTHONPATH\"
export PYTHONPATH="/opt/myp:$PYTHONPATH"
fi
fi
EOF" 2>/dev/null; then
((profile_updated++))
log "✅ Bash-Profile aktualisiert: $user_home/.bashrc"
else
warning "⚠️ Konnte Bash-Profile nicht aktualisieren: $user_home/.bashrc"
fi
fi
else
debug "Überspringe nicht-existierendes/unlesbares .bashrc: $user_home/.bashrc"
fi
else
debug "Überspringe nicht-schreibbares Verzeichnis: $user_home"
fi
done
EOF
# Füge Inhalt hinzu
if cat "$temp_file" >> "$bashrc_file" 2>/dev/null; then
((profile_updated++))
log "✅ Bash-Profile aktualisiert: $bashrc_file"
else
warning "⚠️ Konnte Bash-Profile nicht aktualisieren: $bashrc_file"
fi
# Aufräumen
rm -f "$temp_file" 2>/dev/null || true
fi
else
debug ".bashrc existiert nicht: $bashrc_file"
fi
else
debug "Verzeichnis nicht schreibbar: $user_home"
fi
done
if [ $profile_updated -eq 0 ] && [ "$is_wsl" = false ]; then
warning "⚠️ Keine Bash-Profile wurden aktualisiert"
@@ -2042,6 +2059,12 @@ generate_ssl_certificate() {
install_systemd_services() {
log "=== ROBUSTE SYSTEMD-SERVICES INSTALLATION ==="
# Skip wenn Parameter gesetzt
if [ "$SKIP_SYSTEMD" = true ]; then
log "⏭️ Systemd-Service Installation übersprungen (--skip-systemd oder --wsl/--dev)"
return
fi
# Validiere systemd-Verzeichnis
if [ ! -d "$SYSTEMD_DIR" ]; then
error "systemd-Verzeichnis nicht gefunden: $SYSTEMD_DIR"
@@ -2124,6 +2147,12 @@ install_systemd_services() {
enable_and_start_services() {
log "=== ROBUSTE SERVICES AKTIVIERUNG UND START ==="
# Skip wenn Parameter gesetzt
if [ "$SKIP_SYSTEMD" = true ]; then
log "⏭️ Service-Aktivierung übersprungen (--skip-systemd oder --wsl/--dev)"
return
fi
# Service-Status tracking
local successful_services=0
local failed_services=0