#!/bin/bash # πŸš€ MYP - Manage your Printer (Hauptstartskript) # Weiterleitung an das optimierte Infrastructure-Startskript set -euo pipefail # 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 # 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 log_error "❌ Bereinigung fehlgeschlagen!" exit 1 fi fi # 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 # 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 EXIT_CODE=$? log_error "❌ Start fehlgeschlagen (Exit Code: $EXIT_CODE)" exit $EXIT_CODE fi