87 lines
2.2 KiB
Bash
Executable File
87 lines
2.2 KiB
Bash
Executable File
#!/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
|