"Refactor script files using Conventional Commits (feat)"
This commit is contained in:
parent
0ad5597df3
commit
aa4ec84a44
105
cleanup.ps1
105
cleanup.ps1
@ -1,50 +1,79 @@
|
||||
Write-Host "MYP-Umgebung wird bereinigt..." -ForegroundColor Cyan
|
||||
# 🧹 MYP - Manage your Printer (Hauptbereinigungsskript)
|
||||
# Weiterleitung an das optimierte Infrastructure-Bereinigungsskript
|
||||
|
||||
# Stoppen der Debug-Server, falls sie laufen
|
||||
if (Test-Path -Path "logs\backend-debug.jobid") {
|
||||
Write-Host "Stoppe Backend Debug-Server..." -ForegroundColor Yellow
|
||||
$jobId = Get-Content "logs\backend-debug.jobid"
|
||||
Stop-Job -Id $jobId -ErrorAction SilentlyContinue
|
||||
Remove-Job -Id $jobId -Force -ErrorAction SilentlyContinue
|
||||
Remove-Item "logs\backend-debug.jobid" -Force
|
||||
param(
|
||||
[switch]$Force,
|
||||
[switch]$Help,
|
||||
[switch]$All
|
||||
)
|
||||
|
||||
# Farbdefinitionen für bessere Ausgabe
|
||||
$Colors = @{
|
||||
Info = "Cyan"
|
||||
Success = "Green"
|
||||
Warning = "Yellow"
|
||||
Error = "Red"
|
||||
Header = "Magenta"
|
||||
}
|
||||
|
||||
if (Test-Path -Path "logs\frontend-debug.jobid") {
|
||||
Write-Host "Stoppe Frontend Debug-Server..." -ForegroundColor Yellow
|
||||
$jobId = Get-Content "logs\frontend-debug.jobid"
|
||||
Stop-Job -Id $jobId -ErrorAction SilentlyContinue
|
||||
Remove-Job -Id $jobId -Force -ErrorAction SilentlyContinue
|
||||
Remove-Item "logs\frontend-debug.jobid" -Force
|
||||
function Write-ColorOutput {
|
||||
param([string]$Message, [string]$Color = "White")
|
||||
Write-Host $Message -ForegroundColor $Colors[$Color]
|
||||
}
|
||||
|
||||
# Stoppen und Entfernen aller Docker-Container
|
||||
Write-Host "Stoppe und entferne alle MYP-Container..." -ForegroundColor Yellow
|
||||
docker-compose down
|
||||
# Header anzeigen
|
||||
Write-ColorOutput "🧹 MYP - Manage your Printer (Bereinigung)" "Header"
|
||||
Write-ColorOutput "═══════════════════════════════════════════" "Header"
|
||||
|
||||
# Entfernen aller MYP-Container, auch die bereits gestoppten
|
||||
Write-Host "Entferne alle MYP-Container..." -ForegroundColor Yellow
|
||||
$containers = docker ps -a --filter "name=myp-" -q
|
||||
if ($containers) {
|
||||
docker rm -f $containers
|
||||
# Hilfe anzeigen
|
||||
if ($Help) {
|
||||
Write-ColorOutput "`n📖 Verwendung:" "Info"
|
||||
Write-ColorOutput " .\cleanup.ps1 [Optionen]" "White"
|
||||
Write-ColorOutput "`n⚙️ Optionen:" "Info"
|
||||
Write-ColorOutput " -Force - Bereinigung ohne Bestätigung durchführen" "White"
|
||||
Write-ColorOutput " -All - Vollständige Bereinigung (inkl. Volumes)" "White"
|
||||
Write-ColorOutput " -Help - Diese Hilfe anzeigen" "White"
|
||||
Write-ColorOutput "`n📚 Beispiele:" "Info"
|
||||
Write-ColorOutput " .\cleanup.ps1 # Interaktive Bereinigung" "White"
|
||||
Write-ColorOutput " .\cleanup.ps1 -Force # Automatische Bereinigung" "White"
|
||||
Write-ColorOutput " .\cleanup.ps1 -All -Force # Vollständige Bereinigung" "White"
|
||||
exit 0
|
||||
}
|
||||
|
||||
# Entfernen aller MYP-Images
|
||||
Write-Host "Entferne alle MYP-Images..." -ForegroundColor Yellow
|
||||
$images = docker images --filter "reference=*myp*" -q
|
||||
if ($images) {
|
||||
docker rmi -f $images
|
||||
# Prüfe ob Infrastructure-Skript existiert
|
||||
$InfraScript = ".\infrastructure\scripts\cleanup.ps1"
|
||||
if (-not (Test-Path $InfraScript)) {
|
||||
Write-ColorOutput "`n❌ Infrastructure-Bereinigungsskript nicht gefunden: $InfraScript" "Error"
|
||||
Write-ColorOutput " Bitte stellen Sie sicher, dass die Projektstruktur vollständig ist." "Error"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Entfernen von nicht verwendeten Volumes (optional)
|
||||
Write-Host "Entferne nicht verwendete Volumes..." -ForegroundColor Yellow
|
||||
docker volume prune -f
|
||||
# Parameter für Infrastructure-Skript vorbereiten
|
||||
$InfraParams = @()
|
||||
if ($Force) { $InfraParams += "-Force" }
|
||||
if ($All) { $InfraParams += "-All" }
|
||||
|
||||
# Entfernen von nicht verwendeten Netzwerken (optional)
|
||||
Write-Host "Entferne nicht verwendete Netzwerke..." -ForegroundColor Yellow
|
||||
docker network prune -f
|
||||
# Weiterleitung an Infrastructure-Skript
|
||||
Write-ColorOutput "`n🔄 Weiterleitung an Infrastructure-Bereinigungsskript..." "Info"
|
||||
|
||||
# Entfernen von Build-Cache (optional)
|
||||
Write-Host "Entferne Docker Build-Cache..." -ForegroundColor Yellow
|
||||
docker builder prune -f
|
||||
|
||||
Write-Host "Bereinigung abgeschlossen. Sie können nun 'start.ps1' ausführen, um eine frische Installation zu starten." -ForegroundColor Green
|
||||
try {
|
||||
if ($InfraParams.Count -gt 0) {
|
||||
& $InfraScript @InfraParams
|
||||
} else {
|
||||
& $InfraScript
|
||||
}
|
||||
|
||||
$ExitCode = $LASTEXITCODE
|
||||
|
||||
if ($ExitCode -eq 0) {
|
||||
Write-ColorOutput "`n🎉 Bereinigung erfolgreich abgeschlossen!" "Success"
|
||||
} else {
|
||||
Write-ColorOutput "`n❌ Bereinigung fehlgeschlagen (Exit Code: $ExitCode)" "Error"
|
||||
}
|
||||
|
||||
exit $ExitCode
|
||||
} catch {
|
||||
Write-ColorOutput "`n💥 Unerwarteter Fehler bei der Bereinigung:" "Error"
|
||||
Write-ColorOutput " $($_.Exception.Message)" "Error"
|
||||
exit 1
|
||||
}
|
137
cleanup.sh
137
cleanup.sh
@ -1,42 +1,115 @@
|
||||
#!/bin/bash
|
||||
# 🧹 MYP - Manage your Printer (Hauptbereinigungsskript)
|
||||
# Weiterleitung an das optimierte Infrastructure-Bereinigungsskript
|
||||
|
||||
echo "MYP-Umgebung wird bereinigt..."
|
||||
set -euo pipefail
|
||||
|
||||
# Stoppen der Debug-Server, falls sie laufen
|
||||
if [ -f logs/backend-debug.pid ]; then
|
||||
echo "Stoppe Backend Debug-Server..."
|
||||
kill $(cat logs/backend-debug.pid) 2>/dev/null || true
|
||||
rm logs/backend-debug.pid
|
||||
# Farbdefinitionen für bessere Ausgabe
|
||||
readonly RED='\033[0;31m'
|
||||
readonly GREEN='\033[0;32m'
|
||||
readonly YELLOW='\033[1;33m'
|
||||
readonly BLUE='\033[0;34m'
|
||||
readonly MAGENTA='\033[0;35m'
|
||||
readonly CYAN='\033[0;36m'
|
||||
readonly WHITE='\033[1;37m'
|
||||
readonly NC='\033[0m' # No Color
|
||||
|
||||
# Logging-Funktionen
|
||||
log_info() { echo -e "${CYAN}ℹ️ $1${NC}"; }
|
||||
log_success() { echo -e "${GREEN}✅ $1${NC}"; }
|
||||
log_warning() { echo -e "${YELLOW}⚠️ $1${NC}"; }
|
||||
log_error() { echo -e "${RED}❌ $1${NC}"; }
|
||||
log_header() { echo -e "${MAGENTA}$1${NC}"; }
|
||||
|
||||
# Standard-Parameter
|
||||
FORCE_MODE=false
|
||||
ALL_MODE=false
|
||||
SHOW_HELP=false
|
||||
|
||||
# Hilfe-Funktion
|
||||
show_help() {
|
||||
log_header "🧹 MYP - Manage your Printer (Bereinigung)"
|
||||
log_header "═══════════════════════════════════════════"
|
||||
echo
|
||||
log_info "📖 Verwendung:"
|
||||
echo " ./cleanup.sh [Optionen]"
|
||||
echo
|
||||
log_info "⚙️ Optionen:"
|
||||
echo " -f, --force - Bereinigung ohne Bestätigung durchführen"
|
||||
echo " -a, --all - Vollständige Bereinigung (inkl. Volumes)"
|
||||
echo " -h, --help - Diese Hilfe anzeigen"
|
||||
echo
|
||||
log_info "📚 Beispiele:"
|
||||
echo " ./cleanup.sh # Interaktive Bereinigung"
|
||||
echo " ./cleanup.sh --force # Automatische Bereinigung"
|
||||
echo " ./cleanup.sh --all --force # Vollständige Bereinigung"
|
||||
echo
|
||||
}
|
||||
|
||||
# Parameter-Parsing
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case $1 in
|
||||
-f|--force)
|
||||
FORCE_MODE=true
|
||||
shift
|
||||
;;
|
||||
-a|--all)
|
||||
ALL_MODE=true
|
||||
shift
|
||||
;;
|
||||
-h|--help)
|
||||
SHOW_HELP=true
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
log_error "Unbekannter Parameter: $1"
|
||||
echo "Verwenden Sie --help für Hilfe."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Hilfe anzeigen
|
||||
if [[ "$SHOW_HELP" == true ]]; then
|
||||
show_help
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ -f logs/frontend-debug.pid ]; then
|
||||
echo "Stoppe Frontend Debug-Server..."
|
||||
kill $(cat logs/frontend-debug.pid) 2>/dev/null || true
|
||||
rm logs/frontend-debug.pid
|
||||
# Header anzeigen
|
||||
log_header "🧹 MYP - Manage your Printer (Bereinigung)"
|
||||
log_header "═══════════════════════════════════════════"
|
||||
|
||||
# Prüfe ob Infrastructure-Skript existiert
|
||||
INFRA_SCRIPT="./infrastructure/scripts/cleanup.sh"
|
||||
if [[ ! -f "$INFRA_SCRIPT" ]]; then
|
||||
log_error "❌ Infrastructure-Bereinigungsskript nicht gefunden: $INFRA_SCRIPT"
|
||||
log_error " Bitte stellen Sie sicher, dass die Projektstruktur vollständig ist."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Stoppen und Entfernen aller Docker-Container
|
||||
echo "Stoppe und entferne alle MYP-Container..."
|
||||
docker-compose down
|
||||
# Prüfe Ausführungsrechte
|
||||
if [[ ! -x "$INFRA_SCRIPT" ]]; then
|
||||
log_warning "⚠️ Setze Ausführungsrechte für Infrastructure-Skript..."
|
||||
chmod +x "$INFRA_SCRIPT"
|
||||
fi
|
||||
|
||||
# Entfernen aller MYP-Container, auch die bereits gestoppten
|
||||
echo "Entferne alle MYP-Container..."
|
||||
docker ps -a --filter "name=myp-" -q | xargs -r docker rm -f
|
||||
# Parameter für Infrastructure-Skript vorbereiten
|
||||
INFRA_PARAMS=()
|
||||
if [[ "$FORCE_MODE" == true ]]; then
|
||||
INFRA_PARAMS+=("--force")
|
||||
fi
|
||||
if [[ "$ALL_MODE" == true ]]; then
|
||||
INFRA_PARAMS+=("--all")
|
||||
fi
|
||||
|
||||
# Entfernen aller MYP-Images
|
||||
echo "Entferne alle MYP-Images..."
|
||||
docker images | grep "myp-" | awk '{print $3}' | xargs -r docker rmi -f
|
||||
# Weiterleitung an Infrastructure-Skript
|
||||
log_info "🔄 Weiterleitung an Infrastructure-Bereinigungsskript..."
|
||||
|
||||
# Entfernen von nicht verwendeten Volumes (optional)
|
||||
echo "Entferne nicht verwendete Volumes..."
|
||||
docker volume prune -f
|
||||
|
||||
# Entfernen von nicht verwendeten Netzwerken (optional)
|
||||
echo "Entferne nicht verwendete Netzwerke..."
|
||||
docker network prune -f
|
||||
|
||||
# Entfernen von Build-Cache (optional)
|
||||
echo "Entferne Docker Build-Cache..."
|
||||
docker builder prune -f
|
||||
|
||||
echo "Bereinigung abgeschlossen. Sie können nun 'start.sh' ausführen, um eine frische Installation zu starten."
|
||||
if "${INFRA_SCRIPT}" "${INFRA_PARAMS[@]}"; then
|
||||
log_success "🎉 Bereinigung erfolgreich abgeschlossen!"
|
||||
exit 0
|
||||
else
|
||||
EXIT_CODE=$?
|
||||
log_error "❌ Bereinigung fehlgeschlagen (Exit Code: $EXIT_CODE)"
|
||||
exit $EXIT_CODE
|
||||
fi
|
30
start.ps1
30
start.ps1
@ -26,22 +26,22 @@ function Write-ColorOutput {
|
||||
}
|
||||
|
||||
# Header anzeigen
|
||||
Write-ColorOutput "🖨️ MYP - Manage your Printer" "Header"
|
||||
Write-ColorOutput "═══════════════════════════════════════" "Header"
|
||||
Write-ColorOutput "MYP - Manage your Printer" "Header"
|
||||
Write-ColorOutput "=======================================" "Header"
|
||||
|
||||
# Hilfe anzeigen
|
||||
if ($Help) {
|
||||
Write-ColorOutput "`n📖 Verwendung:" "Info"
|
||||
Write-ColorOutput "`nVerwendung:" "Info"
|
||||
Write-ColorOutput " .\start.ps1 [Environment] [Optionen]" "White"
|
||||
Write-ColorOutput "`n🌍 Verfügbare Umgebungen:" "Info"
|
||||
Write-ColorOutput "`nVerfügbare Umgebungen:" "Info"
|
||||
Write-ColorOutput " dev, development - Entwicklungsumgebung (Standard)" "White"
|
||||
Write-ColorOutput " prod, production - Produktionsumgebung" "White"
|
||||
Write-ColorOutput " test - Testumgebung" "White"
|
||||
Write-ColorOutput "`n⚙️ Optionen:" "Info"
|
||||
Write-ColorOutput "`nOptionen:" "Info"
|
||||
Write-ColorOutput " -Help - Diese Hilfe anzeigen" "White"
|
||||
Write-ColorOutput " -Version - Versionsinformationen anzeigen" "White"
|
||||
Write-ColorOutput " -Clean - System vor Start bereinigen" "White"
|
||||
Write-ColorOutput "`n📚 Beispiele:" "Info"
|
||||
Write-ColorOutput "`nBeispiele:" "Info"
|
||||
Write-ColorOutput " .\start.ps1 # Entwicklungsumgebung starten" "White"
|
||||
Write-ColorOutput " .\start.ps1 prod # Produktionsumgebung starten" "White"
|
||||
Write-ColorOutput " .\start.ps1 dev -Clean # Mit Bereinigung starten" "White"
|
||||
@ -50,7 +50,7 @@ if ($Help) {
|
||||
|
||||
# Version anzeigen
|
||||
if ($Version) {
|
||||
Write-ColorOutput "`n📋 Systeminformationen:" "Info"
|
||||
Write-ColorOutput "`nSysteminformationen:" "Info"
|
||||
Write-ColorOutput " MYP Version: 2.0.0" "White"
|
||||
Write-ColorOutput " PowerShell: $($PSVersionTable.PSVersion)" "White"
|
||||
Write-ColorOutput " OS: $($PSVersionTable.OS)" "White"
|
||||
@ -60,25 +60,25 @@ if ($Version) {
|
||||
|
||||
# Bereinigung falls gewünscht
|
||||
if ($Clean) {
|
||||
Write-ColorOutput "`n🧹 System wird bereinigt..." "Warning"
|
||||
Write-ColorOutput "`nSystem wird bereinigt..." "Warning"
|
||||
& ".\infrastructure\scripts\cleanup.ps1" -Force
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
Write-ColorOutput "❌ Bereinigung fehlgeschlagen!" "Error"
|
||||
Write-ColorOutput "Bereinigung fehlgeschlagen!" "Error"
|
||||
exit 1
|
||||
}
|
||||
Write-ColorOutput "✅ System erfolgreich bereinigt!" "Success"
|
||||
Write-ColorOutput "System erfolgreich bereinigt!" "Success"
|
||||
}
|
||||
|
||||
# Prüfe ob Infrastructure-Skript existiert
|
||||
$InfraScript = ".\infrastructure\scripts\start.ps1"
|
||||
if (-not (Test-Path $InfraScript)) {
|
||||
Write-ColorOutput "`n❌ Infrastructure-Startskript nicht gefunden: $InfraScript" "Error"
|
||||
Write-ColorOutput "`nInfrastructure-Startskript nicht gefunden: $InfraScript" "Error"
|
||||
Write-ColorOutput " Bitte stellen Sie sicher, dass die Projektstruktur vollständig ist." "Error"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Weiterleitung an Infrastructure-Skript
|
||||
Write-ColorOutput "`n🔄 Weiterleitung an Infrastructure-Startskript..." "Info"
|
||||
Write-ColorOutput "`nWeiterleitung an Infrastructure-Startskript..." "Info"
|
||||
Write-ColorOutput " Umgebung: $Environment" "White"
|
||||
|
||||
try {
|
||||
@ -86,15 +86,15 @@ try {
|
||||
$ExitCode = $LASTEXITCODE
|
||||
|
||||
if ($ExitCode -eq 0) {
|
||||
Write-ColorOutput "`n🎉 MYP erfolgreich gestartet!" "Success"
|
||||
Write-ColorOutput "`nMYP erfolgreich gestartet!" "Success"
|
||||
Write-ColorOutput " Zugriff über: http://localhost" "Info"
|
||||
} else {
|
||||
Write-ColorOutput "`n❌ Start fehlgeschlagen (Exit Code: $ExitCode)" "Error"
|
||||
Write-ColorOutput "`nStart fehlgeschlagen (Exit Code: $ExitCode)" "Error"
|
||||
}
|
||||
|
||||
exit $ExitCode
|
||||
} catch {
|
||||
Write-ColorOutput "`n💥 Unerwarteter Fehler beim Start:" "Error"
|
||||
Write-ColorOutput "`nUnerwarteter Fehler beim Start:" "Error"
|
||||
Write-ColorOutput " $($_.Exception.Message)" "Error"
|
||||
exit 1
|
||||
}
|
244
start.sh
244
start.sh
@ -1,111 +1,157 @@
|
||||
#!/bin/bash
|
||||
# Projektarbeit-MYP Startskript für Linux
|
||||
# Dieses Skript startet alle notwendigen Dienste für das MYP-Projekt
|
||||
# 🚀 MYP - Manage your Printer (Hauptstartskript)
|
||||
# Weiterleitung an das optimierte Infrastructure-Startskript
|
||||
|
||||
echo -e "\e[32mStarte MYP-Projekt...\e[0m"
|
||||
set -euo pipefail
|
||||
|
||||
# SSH-Server prüfen und aktivieren
|
||||
echo -e "\e[33mPrüfe SSH-Server-Status...\e[0m"
|
||||
if command -v systemctl > /dev/null; then
|
||||
# Prüfen, ob SSH-Server installiert ist
|
||||
if ! systemctl list-unit-files | grep -q ssh.service; then
|
||||
echo -e "\e[33mSSH-Server scheint nicht installiert zu sein. Versuche zu installieren...\e[0m"
|
||||
if command -v apt-get > /dev/null; then
|
||||
sudo apt-get update && sudo apt-get install -y openssh-server
|
||||
elif command -v yum > /dev/null; then
|
||||
sudo yum install -y openssh-server
|
||||
else
|
||||
echo -e "\e[31mPacket-Manager nicht gefunden. Bitte installieren Sie openssh-server manuell.\e[0m"
|
||||
fi
|
||||
fi
|
||||
|
||||
# SSH-Server aktivieren und starten
|
||||
echo -e "\e[33mAktiviere SSH-Server beim Systemstart...\e[0m"
|
||||
sudo systemctl enable ssh.service || sudo systemctl enable sshd.service
|
||||
|
||||
# SSH-Server starten, falls nicht bereits läuft
|
||||
if ! systemctl is-active --quiet ssh.service && ! systemctl is-active --quiet sshd.service; then
|
||||
echo -e "\e[33mStarte SSH-Server...\e[0m"
|
||||
sudo systemctl start ssh.service || sudo systemctl start sshd.service
|
||||
else
|
||||
echo -e "\e[32mSSH-Server läuft bereits.\e[0m"
|
||||
fi
|
||||
else
|
||||
echo -e "\e[31mSystemctl nicht gefunden. Bitte aktivieren Sie den SSH-Server manuell.\e[0m"
|
||||
# Farbdefinitionen für bessere Ausgabe
|
||||
readonly RED='\033[0;31m'
|
||||
readonly GREEN='\033[0;32m'
|
||||
readonly YELLOW='\033[1;33m'
|
||||
readonly BLUE='\033[0;34m'
|
||||
readonly MAGENTA='\033[0;35m'
|
||||
readonly CYAN='\033[0;36m'
|
||||
readonly WHITE='\033[1;37m'
|
||||
readonly NC='\033[0m' # No Color
|
||||
|
||||
# Logging-Funktionen
|
||||
log_info() { echo -e "${CYAN}ℹ️ $1${NC}"; }
|
||||
log_success() { echo -e "${GREEN}✅ $1${NC}"; }
|
||||
log_warning() { echo -e "${YELLOW}⚠️ $1${NC}"; }
|
||||
log_error() { echo -e "${RED}❌ $1${NC}"; }
|
||||
log_header() { echo -e "${MAGENTA}$1${NC}"; }
|
||||
|
||||
# Standard-Umgebung
|
||||
ENVIRONMENT="dev"
|
||||
CLEAN_MODE=false
|
||||
SHOW_HELP=false
|
||||
SHOW_VERSION=false
|
||||
|
||||
# Hilfe-Funktion
|
||||
show_help() {
|
||||
log_header "🖨️ MYP - Manage your Printer"
|
||||
log_header "═══════════════════════════════════════"
|
||||
echo
|
||||
log_info "📖 Verwendung:"
|
||||
echo " ./start.sh [Environment] [Optionen]"
|
||||
echo
|
||||
log_info "🌍 Verfügbare Umgebungen:"
|
||||
echo " dev, development - Entwicklungsumgebung (Standard)"
|
||||
echo " prod, production - Produktionsumgebung"
|
||||
echo " test - Testumgebung"
|
||||
echo
|
||||
log_info "⚙️ Optionen:"
|
||||
echo " -h, --help - Diese Hilfe anzeigen"
|
||||
echo " -v, --version - Versionsinformationen anzeigen"
|
||||
echo " -c, --clean - System vor Start bereinigen"
|
||||
echo
|
||||
log_info "📚 Beispiele:"
|
||||
echo " ./start.sh # Entwicklungsumgebung starten"
|
||||
echo " ./start.sh prod # Produktionsumgebung starten"
|
||||
echo " ./start.sh dev --clean # Mit Bereinigung starten"
|
||||
echo
|
||||
}
|
||||
|
||||
# Versions-Funktion
|
||||
show_version() {
|
||||
log_header "🖨️ MYP - Manage your Printer"
|
||||
log_header "═══════════════════════════════════════"
|
||||
echo
|
||||
log_info "📋 Systeminformationen:"
|
||||
echo " MYP Version: 2.0.0"
|
||||
echo " Bash Version: ${BASH_VERSION}"
|
||||
echo " OS: $(uname -s)"
|
||||
echo " Architektur: $(uname -m)"
|
||||
echo " Kernel: $(uname -r)"
|
||||
echo
|
||||
}
|
||||
|
||||
# Parameter-Parsing
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case $1 in
|
||||
dev|development)
|
||||
ENVIRONMENT="dev"
|
||||
shift
|
||||
;;
|
||||
prod|production)
|
||||
ENVIRONMENT="prod"
|
||||
shift
|
||||
;;
|
||||
test)
|
||||
ENVIRONMENT="test"
|
||||
shift
|
||||
;;
|
||||
-h|--help)
|
||||
SHOW_HELP=true
|
||||
shift
|
||||
;;
|
||||
-v|--version)
|
||||
SHOW_VERSION=true
|
||||
shift
|
||||
;;
|
||||
-c|--clean)
|
||||
CLEAN_MODE=true
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
log_error "Unbekannter Parameter: $1"
|
||||
echo "Verwenden Sie --help für Hilfe."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Hilfe anzeigen
|
||||
if [[ "$SHOW_HELP" == true ]]; then
|
||||
show_help
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Überprüfen, ob Docker läuft
|
||||
if ! docker info > /dev/null 2>&1; then
|
||||
echo -e "\e[33mDocker scheint nicht zu laufen. Versuche Docker zu starten...\e[0m"
|
||||
|
||||
# Versuchen, Docker zu starten (funktioniert auf Systemen mit systemd)
|
||||
if command -v systemctl > /dev/null; then
|
||||
sudo systemctl start docker
|
||||
sleep 5
|
||||
|
||||
if ! docker info > /dev/null 2>&1; then
|
||||
echo -e "\e[31mDocker konnte nicht gestartet werden. Bitte starten Sie Docker manuell und führen Sie dieses Skript erneut aus.\e[0m"
|
||||
exit 1
|
||||
fi
|
||||
# Version anzeigen
|
||||
if [[ "$SHOW_VERSION" == true ]]; then
|
||||
show_version
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Header anzeigen
|
||||
log_header "🖨️ MYP - Manage your Printer"
|
||||
log_header "═══════════════════════════════════════"
|
||||
|
||||
# Bereinigung falls gewünscht
|
||||
if [[ "$CLEAN_MODE" == true ]]; then
|
||||
log_warning "🧹 System wird bereinigt..."
|
||||
if ./infrastructure/scripts/cleanup.sh --force; then
|
||||
log_success "✅ System erfolgreich bereinigt!"
|
||||
else
|
||||
echo -e "\e[31mDocker ist nicht gestartet und konnte nicht automatisch gestartet werden.\e[0m"
|
||||
echo -e "\e[31mBitte starten Sie Docker manuell und führen Sie dieses Skript erneut aus.\e[0m"
|
||||
log_error "❌ Bereinigung fehlgeschlagen!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -e "\e[32mDocker wurde erfolgreich gestartet.\e[0m"
|
||||
fi
|
||||
|
||||
# Überprüfen, ob die Container bereits laufen
|
||||
RUNNING_CONTAINERS=$(docker ps --format "{{.Names}}" | grep -E "myp-backend|myp-rp|myp-caddy" | wc -l)
|
||||
# Prüfe ob Infrastructure-Skript existiert
|
||||
INFRA_SCRIPT="./infrastructure/scripts/start.sh"
|
||||
if [[ ! -f "$INFRA_SCRIPT" ]]; then
|
||||
log_error "❌ Infrastructure-Startskript nicht gefunden: $INFRA_SCRIPT"
|
||||
log_error " Bitte stellen Sie sicher, dass die Projektstruktur vollständig ist."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$RUNNING_CONTAINERS" -eq 3 ]; then
|
||||
echo -e "\e[32mAlle MYP-Container laufen bereits.\e[0m"
|
||||
# Prüfe Ausführungsrechte
|
||||
if [[ ! -x "$INFRA_SCRIPT" ]]; then
|
||||
log_warning "⚠️ Setze Ausführungsrechte für Infrastructure-Skript..."
|
||||
chmod +x "$INFRA_SCRIPT"
|
||||
fi
|
||||
|
||||
# Weiterleitung an Infrastructure-Skript
|
||||
log_info "🔄 Weiterleitung an Infrastructure-Startskript..."
|
||||
echo " Umgebung: $ENVIRONMENT"
|
||||
|
||||
if "$INFRA_SCRIPT" "$ENVIRONMENT"; then
|
||||
log_success "🎉 MYP erfolgreich gestartet!"
|
||||
log_info " Zugriff über: http://localhost"
|
||||
exit 0
|
||||
else
|
||||
# Container starten
|
||||
echo -e "\e[33mStarte MYP-Container...\e[0m"
|
||||
|
||||
# Ins Projektverzeichnis wechseln
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
cd "$SCRIPT_DIR"
|
||||
|
||||
# Docker-Compose ausführen
|
||||
docker-compose up -d
|
||||
|
||||
# Warten, bis alle Container laufen
|
||||
echo -e "\e[33mWarte, bis alle Container bereit sind...\e[0m"
|
||||
ALL_RUNNING=false
|
||||
RETRY_COUNT=0
|
||||
MAX_RETRIES=30
|
||||
|
||||
while [ "$ALL_RUNNING" = false ] && [ "$RETRY_COUNT" -lt "$MAX_RETRIES" ]; do
|
||||
sleep 5
|
||||
RETRY_COUNT=$((RETRY_COUNT + 1))
|
||||
|
||||
BACKEND_HEALTH=$(docker inspect --format='{{.State.Health.Status}}' myp-backend 2>/dev/null)
|
||||
FRONTEND_HEALTH=$(docker inspect --format='{{.State.Health.Status}}' myp-rp 2>/dev/null)
|
||||
|
||||
if [ "$BACKEND_HEALTH" = "healthy" ] && [ "$FRONTEND_HEALTH" = "healthy" ]; then
|
||||
ALL_RUNNING=true
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$ALL_RUNNING" = true ]; then
|
||||
echo -e "\e[32mAlle MYP-Container sind bereit und laufen.\e[0m"
|
||||
else
|
||||
echo -e "\e[33mZeitüberschreitung beim Warten auf Container. Bitte überprüfen Sie den Status mit 'docker ps'.\e[0m"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Informationen zur Anwendung anzeigen
|
||||
echo -e "\n\e[36mMYP-Anwendung ist jetzt verfügbar unter:\e[0m"
|
||||
echo -e " * http://localhost"
|
||||
echo -e " * http://192.168.0.5:5000 (Backend API direkt)"
|
||||
echo -e "\n\e[36mDas Backend ist unter der festen IP 192.168.0.5 erreichbar.\e[0m"
|
||||
echo -e "\e[36mDie API kann über http://localhost/api/ angesprochen werden.\e[0m"
|
||||
echo -e "\n\e[36mSSH-Server ist aktiviert und wird beim Systemstart automatisch gestartet.\e[0m"
|
||||
|
||||
echo -e "\n\e[33mZum Beenden der Anwendung verwenden Sie: docker-compose down\e[0m"
|
||||
|
||||
# Ausführbare Rechte setzen
|
||||
chmod +x "$0"
|
||||
EXIT_CODE=$?
|
||||
log_error "❌ Start fehlgeschlagen (Exit Code: $EXIT_CODE)"
|
||||
exit $EXIT_CODE
|
||||
fi
|
Loading…
x
Reference in New Issue
Block a user