157 lines
4.4 KiB
Bash
157 lines
4.4 KiB
Bash
#!/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 |