Projektarbeit-MYP/start.ps1

100 lines
3.5 KiB
PowerShell

# 🚀 MYP - Manage your Printer (Hauptstartskript)
# Weiterleitung an das optimierte Infrastructure-Startskript
param(
[Parameter(Position=0)]
[ValidateSet("dev", "prod", "test", "development", "production")]
[string]$Environment = "dev",
[switch]$Help,
[switch]$Version,
[switch]$Clean
)
# Farbdefinitionen für bessere Ausgabe
$Colors = @{
Info = "Cyan"
Success = "Green"
Warning = "Yellow"
Error = "Red"
Header = "Magenta"
}
function Write-ColorOutput {
param([string]$Message, [string]$Color = "White")
Write-Host $Message -ForegroundColor $Colors[$Color]
}
# Header anzeigen
Write-ColorOutput "MYP - Manage your Printer" "Header"
Write-ColorOutput "=======================================" "Header"
# Hilfe anzeigen
if ($Help) {
Write-ColorOutput "`nVerwendung:" "Info"
Write-ColorOutput " .\start.ps1 [Environment] [Optionen]" "White"
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 "`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 "`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"
exit 0
}
# Version anzeigen
if ($Version) {
Write-ColorOutput "`nSysteminformationen:" "Info"
Write-ColorOutput " MYP Version: 2.0.0" "White"
Write-ColorOutput " PowerShell: $($PSVersionTable.PSVersion)" "White"
Write-ColorOutput " OS: $($PSVersionTable.OS)" "White"
Write-ColorOutput " Architektur: $env:PROCESSOR_ARCHITECTURE" "White"
exit 0
}
# Bereinigung falls gewünscht
if ($Clean) {
Write-ColorOutput "`nSystem wird bereinigt..." "Warning"
& ".\infrastructure\scripts\cleanup.ps1" -Force
if ($LASTEXITCODE -ne 0) {
Write-ColorOutput "Bereinigung fehlgeschlagen!" "Error"
exit 1
}
Write-ColorOutput "System erfolgreich bereinigt!" "Success"
}
# Prüfe ob Infrastructure-Skript existiert
$InfraScript = ".\infrastructure\scripts\start.ps1"
if (-not (Test-Path $InfraScript)) {
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 "`nWeiterleitung an Infrastructure-Startskript..." "Info"
Write-ColorOutput " Umgebung: $Environment" "White"
try {
& $InfraScript $Environment
$ExitCode = $LASTEXITCODE
if ($ExitCode -eq 0) {
Write-ColorOutput "`nMYP erfolgreich gestartet!" "Success"
Write-ColorOutput " Zugriff über: http://localhost" "Info"
} else {
Write-ColorOutput "`nStart fehlgeschlagen (Exit Code: $ExitCode)" "Error"
}
exit $ExitCode
} catch {
Write-ColorOutput "`nUnerwarteter Fehler beim Start:" "Error"
Write-ColorOutput " $($_.Exception.Message)" "Error"
exit 1
}