diff --git a/install.sh b/install.sh index 6bb1513..76baefc 100644 --- a/install.sh +++ b/install.sh @@ -21,6 +21,7 @@ # --no-makemkv MakeMKV-Installation überspringen # --no-handbrake HandBrake-Installation überspringen # --no-nginx Nginx-Einrichtung überspringen +# --no-system-deps Abschnitt "Systemabhängigkeiten installieren" überspringen # --reinstall Vorhandene Installation aktualisieren (Daten bleiben erhalten) # -h, --help Diese Hilfe anzeigen # ============================================================================= @@ -54,6 +55,7 @@ SKIP_MAKEMKV=false SKIP_HANDBRAKE=false HANDBRAKE_INSTALL_MODE="" SKIP_NGINX=false +SKIP_SYSTEM_DEPS=false REINSTALL=false GIT_COMMAND_TIMEOUT_SEC=180 @@ -77,6 +79,7 @@ while [[ $# -gt 0 ]]; do --no-makemkv) SKIP_MAKEMKV=true; shift ;; --no-handbrake) SKIP_HANDBRAKE=true; shift ;; --no-nginx) SKIP_NGINX=true; shift ;; + --no-system-deps) SKIP_SYSTEM_DEPS=true; shift ;; --reinstall) REINSTALL=true; shift ;; -h|--help) sed -n '/^# Verwendung/,/^# ====/p' "$0" | head -n -1 | sed 's/^# \?//' @@ -784,59 +787,82 @@ info "Installationsverzeichnis: $INSTALL_DIR" info "Systembenutzer: $SERVICE_USER" info "Backend-Port: $BACKEND_PORT" info "Frontend-Host: $FRONTEND_HOST" +info "System-Dependencies: $([[ "$SKIP_SYSTEM_DEPS" == true ]] && echo "überspringen" || echo "installieren")" # --- HandBrake-Installmodus auswählen ---------------------------------------- -select_handbrake_mode +if [[ "$SKIP_SYSTEM_DEPS" == false ]]; then + select_handbrake_mode +fi # --- Systemabhängigkeiten ----------------------------------------------------- -header "Systemabhängigkeiten installieren" - -info "Paketlisten aktualisieren..." -apt_update - -info "Installiere Basispakete..." -apt-get install -y \ - curl wget git jq \ - ffmpeg \ - mediainfo \ - util-linux udev \ - ca-certificates gnupg \ - lsb-release \ - mkvtoolnix \ - coreutils - -ok "Basispakete installiert" - -info "Installiere CD-Ripping-Tools..." -apt-get install -y \ - cdparanoia \ - flac \ - lame \ - opus-tools \ - vorbis-tools - -ok "CD-Ripping-Tools installiert (cdparanoia, flac, lame, opus-tools, vorbis-tools)" - -install_node - -if [[ "$SKIP_MAKEMKV" == false ]]; then - install_makemkv +if [[ "$SKIP_SYSTEM_DEPS" == true ]]; then + header "Systemabhängigkeiten installieren" + warn "Übersprungen (--no-system-deps)" else - warn "MakeMKV-Installation übersprungen (--no-makemkv)" -fi + header "Systemabhängigkeiten installieren" -if [[ "$SKIP_HANDBRAKE" == false ]]; then - install_handbrake -else - warn "HandBrake-Installation übersprungen (--no-handbrake)" -fi + info "Paketlisten aktualisieren..." + apt_update -if [[ "$SKIP_NGINX" == false ]]; then - if ! command_exists nginx; then - info "Installiere nginx..." - apt-get install -y nginx + info "Installiere Basispakete..." + apt-get install -y \ + curl wget git jq \ + ffmpeg \ + mediainfo \ + util-linux udev \ + ca-certificates gnupg \ + lsb-release \ + mkvtoolnix \ + coreutils + + ok "Basispakete installiert" + + info "Installiere CD-Ripping-Tools..." + apt-get install -y \ + cdparanoia \ + flac \ + lame \ + opus-tools \ + vorbis-tools + + ok "CD-Ripping-Tools installiert (cdparanoia, flac, lame, opus-tools, vorbis-tools)" + + install_node + + if [[ "$SKIP_MAKEMKV" == false ]]; then + install_makemkv + else + warn "MakeMKV-Installation übersprungen (--no-makemkv)" + fi + + if [[ "$SKIP_HANDBRAKE" == false ]]; then + install_handbrake + else + warn "HandBrake-Installation übersprungen (--no-handbrake)" + fi + + if [[ "$SKIP_NGINX" == false ]]; then + if ! command_exists nginx; then + info "Installiere nginx..." + apt-get install -y nginx + fi + ok "nginx installiert" + fi +fi + +if [[ "$SKIP_SYSTEM_DEPS" == true ]]; then + missing_required=() + command_exists git || missing_required+=("git") + command_exists jq || missing_required+=("jq") + command_exists node || missing_required+=("node") + command_exists npm || missing_required+=("npm") + if [[ "$SKIP_NGINX" == false ]]; then + command_exists nginx || missing_required+=("nginx") + fi + + if [[ ${#missing_required[@]} -gt 0 ]]; then + fatal "--no-system-deps gesetzt, aber folgende Pflicht-Tools fehlen: ${missing_required[*]}. Bitte vorab installieren oder ohne --no-system-deps ausführen." fi - ok "nginx installiert" fi # --- Systembenutzer anlegen ---------------------------------------------------