157 lines
4.4 KiB
Bash
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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