#!/bin/bash # Installiert Semgrep basierend auf dem Betriebssystem set -e echo "Pruefe Semgrep Installation..." # Pruefen ob bereits installiert if command -v semgrep &> /dev/null; then echo "Semgrep ist bereits installiert: $(semgrep --version)" exit 0 fi echo "Semgrep nicht gefunden. Starte Installation..." # OS erkennen OS_TYPE=$(uname -s) case "$OS_TYPE" in "Darwin") # macOS echo "macOS erkannt - nutze Homebrew" if command -v brew &> /dev/null; then brew install semgrep else echo "Homebrew nicht gefunden - nutze pip3" pip3 install semgrep fi ;; "Linux") echo "Linux erkannt" # Versuche verschiedene Paketmanager if command -v apt-get &> /dev/null; then echo "Nutze apt-get..." # Semgrep via Python da apt Version oft veraltet pip3 install semgrep elif command -v apk &> /dev/null; then echo "Alpine erkannt - nutze pip3" apk add --no-cache python3 py3-pip pip3 install semgrep elif command -v yum &> /dev/null; then echo "RHEL/CentOS erkannt - nutze pip3" pip3 install semgrep else echo "Nutze pip3 als Fallback" pip3 install semgrep fi ;; "MINGW"*|"MSYS"*|"CYGWIN"*) # Windows echo "Windows erkannt" if command -v choco &> /dev/null; then choco install semgrep -y elif command -v pip3 &> /dev/null; then pip3 install semgrep elif command -v pip &> /dev/null; then pip install semgrep else echo "Bitte installiere Python und pip: https://www.python.org/downloads/" exit 1 fi ;; *) echo "Unbekanntes OS: $OS_TYPE - nutze pip3" pip3 install semgrep ;; esac # Verifizieren if command -v semgrep &> /dev/null; then echo "" echo "Installation erfolgreich!" semgrep --version else echo "" echo "Installation fehlgeschlagen." echo "Bitte manuell installieren: https://semgrep.dev/docs/getting-started/" exit 1 fi