Der 18. Waldwächter betritt den Wald: BashPanda lehrt Bash als Kampfkunst! ✨ Neue Features: 🐼 BashPanda Waldwächter: - Kung Fu Meister Persönlichkeit - Lehrt Bash durch Kampfkunst-Metaphern - Integriert in waldwaechter.sh Library - Crew Memory: Kennt alle anderen Waldwächter 🥋 6 Gürtel-Missionen (Progressive Bash-Meisterschaft): - 🖤 Schwarzer Gürtel: echo, Variablen, read, ANSI codes - 💖 Pinker Gürtel: if/then, while/for, Arrays, Arithmetik - 💙 Blauer Gürtel: sed, case, bc, Textverarbeitung - 💚 Grüner Gürtel: grep, regex, Pattern Matching - 💛 Gelber Gürtel: Funktionen, source, Parameter - 🤍 Weisser Gürtel: Background jobs, Prozesse, Parallelität 📝 Interaktives Quiz-System: - Browser-based Gürtelprüfung (crumbblocks) - 30 Fragen (5 pro Gürtel) - Farbcodiert nach Gürtel - Auto-Export via Clipboard - Terminal-Auswertung mit Zertifikaten 🎓 Zertifikate-System: - Automatische Generierung bei 80%+ - Gespeichert in logs/zertifikate/ - BashPanda's Segen & Weisheiten 📚 Dokumentation: - CLAUDE.md komplett aktualisiert - BashPanda als 18. Waldwächter dokumentiert - Vollständige Dojo-Architektur beschrieben "Der Weg des Codes ist wie der Weg der Kampfkunst: Geduld, Präzision, Wiederholung." - BashPanda 🐼🎋 Crumbforest wächst! 🌲 Der Wurzelbau geht weiter! 🌳 🤖 Generated with Claude Code (https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
191 lines
7.9 KiB
Bash
Executable File
191 lines
7.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# 🐼 BashPanda Gürtelprüfung Evaluator
|
|
# Wertet die Crumbblock Quiz-Ergebnisse aus
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
source "${SCRIPT_DIR}/../../lib/waldwaechter.sh"
|
|
|
|
cat << 'EOF'
|
|
|
|
╔═══════════════════════════════════════════════════════════╗
|
|
║ ║
|
|
║ 🐼 BASHPANDA GÜRTELPRÜFUNG - AUSWERTUNG 🥋 ║
|
|
║ ║
|
|
╚═══════════════════════════════════════════════════════════╝
|
|
|
|
EOF
|
|
|
|
echo "🐼 BashPanda wartet auf deine Prüfungsergebnisse..."
|
|
echo ""
|
|
echo "📋 Bitte füge die Ergebnisse aus dem Browser ein:"
|
|
echo " (Kopiert nach Abschluss der Prüfung automatisch)"
|
|
echo ""
|
|
echo "Füge ein und drücke Enter, dann Ctrl+D:"
|
|
echo ""
|
|
|
|
# Read clipboard content (multi-line)
|
|
RESULT_JSON=$(cat)
|
|
|
|
# Check if valid JSON
|
|
if ! echo "$RESULT_JSON" | jq empty 2>/dev/null; then
|
|
echo ""
|
|
echo "❌ Fehler: Keine gültigen JSON-Daten!"
|
|
echo ""
|
|
echo "💡 So geht's:"
|
|
echo " 1. Öffne: ./start_crumbblocks.sh"
|
|
echo " 2. Navigiere zu: bashpanda_guertelpruefung.html"
|
|
echo " 3. Wähle deinen Gürtel und beantworte die Fragen"
|
|
echo " 4. Am Ende werden die Ergebnisse automatisch kopiert"
|
|
echo " 5. Komm zurück und führe dieses Skript aus"
|
|
echo ""
|
|
exit 1
|
|
fi
|
|
|
|
# Extract data
|
|
BELT=$(echo "$RESULT_JSON" | jq -r '.belt')
|
|
SCORE=$(echo "$RESULT_JSON" | jq -r '.score')
|
|
TOTAL=$(echo "$RESULT_JSON" | jq -r '.total')
|
|
PERCENTAGE=$(echo "$RESULT_JSON" | jq -r '.percentage')
|
|
PASSED=$(echo "$RESULT_JSON" | jq -r '.passed')
|
|
TIMESTAMP=$(echo "$RESULT_JSON" | jq -r '.timestamp')
|
|
|
|
echo ""
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
echo ""
|
|
|
|
# Belt emoji mapping
|
|
case "$BELT" in
|
|
schwarz) BELT_EMOJI="🖤" ; BELT_NAME="Schwarzer" ;;
|
|
pink) BELT_EMOJI="💖" ; BELT_NAME="Pinker" ;;
|
|
blau) BELT_EMOJI="💙" ; BELT_NAME="Blauer" ;;
|
|
gruen) BELT_EMOJI="💚" ; BELT_NAME="Grüner" ;;
|
|
gelb) BELT_EMOJI="💛" ; BELT_NAME="Gelber" ;;
|
|
weiss) BELT_EMOJI="🤍" ; BELT_NAME="Weisser" ;;
|
|
*) BELT_EMOJI="🥋" ; BELT_NAME="Unbekannter" ;;
|
|
esac
|
|
|
|
echo "🐼 Auswertung: $BELT_NAME Gürtel $BELT_EMOJI"
|
|
echo ""
|
|
echo " Ergebnis: $SCORE von $TOTAL Fragen"
|
|
echo " Prozent: $PERCENTAGE%"
|
|
echo ""
|
|
|
|
if [ "$PASSED" = "true" ]; then
|
|
# PASSED!
|
|
cat << 'EOF'
|
|
╔═══════════════════════════════════════════════════════════╗
|
|
║ ║
|
|
║ 🎉 PRÜFUNG BESTANDEN! 🎉 ║
|
|
║ ║
|
|
╚═══════════════════════════════════════════════════════════╝
|
|
|
|
EOF
|
|
|
|
echo "$BELT_EMOJI Du hast den $BELT_NAME Gürtel verdient! $BELT_EMOJI"
|
|
echo ""
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
echo ""
|
|
echo "📜 ZERTIFIKAT"
|
|
echo ""
|
|
echo " Hiermit wird bestätigt, dass"
|
|
echo ""
|
|
echo " $USER"
|
|
echo ""
|
|
echo " die Prüfung zum $BELT_NAME Gürtel $BELT_EMOJI"
|
|
echo " erfolgreich absolviert hat."
|
|
echo ""
|
|
echo " Ergebnis: $SCORE/$TOTAL ($PERCENTAGE%)"
|
|
echo " Datum: $(date '+%Y-%m-%d %H:%M')"
|
|
echo ""
|
|
echo " 🐼 BashPanda - Kung Fu Meister"
|
|
echo " Crumbforest Dojo"
|
|
echo ""
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
echo ""
|
|
|
|
# Save certificate
|
|
CERT_DIR="${SCRIPT_DIR}/../../logs/zertifikate"
|
|
mkdir -p "$CERT_DIR"
|
|
CERT_FILE="$CERT_DIR/${BELT}_${USER}_$(date +%Y%m%d_%H%M%S).txt"
|
|
|
|
cat > "$CERT_FILE" << CERT
|
|
╔═══════════════════════════════════════════════════════════╗
|
|
║ ║
|
|
║ CRUMBFOREST DOJO - ZERTIFIKAT ║
|
|
║ ║
|
|
╚═══════════════════════════════════════════════════════════╝
|
|
|
|
Schüler: $USER
|
|
Gürtel: $BELT_NAME $BELT_EMOJI
|
|
Ergebnis: $SCORE von $TOTAL Fragen ($PERCENTAGE%)
|
|
Datum: $(date '+%Y-%m-%d %H:%M:%S')
|
|
|
|
"$BELT_NAME Gürtel erfolgreich bestanden!"
|
|
|
|
🐼 BashPanda
|
|
Kung Fu Meister
|
|
Crumbforest Dojo
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
CERT
|
|
|
|
echo "💾 Zertifikat gespeichert: $CERT_FILE"
|
|
echo ""
|
|
|
|
# Next belt suggestion
|
|
case "$BELT" in
|
|
schwarz) echo "🎯 Nächster Gürtel: Pink 💖 (Kontrolle)" ;;
|
|
pink) echo "🎯 Nächster Gürtel: Blau 💙 (Text)" ;;
|
|
blau) echo "🎯 Nächster Gürtel: Grün 💚 (Pattern)" ;;
|
|
gruen) echo "🎯 Nächster Gürtel: Gelb 💛 (Funktionen)" ;;
|
|
gelb) echo "🎯 Nächster Gürtel: Weiss 🤍 (Meisterschaft)" ;;
|
|
weiss) echo "🎉 MEISTERSCHAFT ERREICHT! Du hast alle Gürtel!" ;;
|
|
esac
|
|
|
|
echo ""
|
|
echo "🐼 BashPanda sagt:"
|
|
bashpanda "Gratuliere zum bestandenen $BELT_NAME Gürtel! Was bedeutet diese Errungenschaft?"
|
|
|
|
else
|
|
# NOT PASSED
|
|
cat << 'EOF'
|
|
╔═══════════════════════════════════════════════════════════╗
|
|
║ ║
|
|
║ ⚠️ PRÜFUNG NICHT BESTANDEN ⚠️ ║
|
|
║ ║
|
|
╚═══════════════════════════════════════════════════════════╝
|
|
|
|
EOF
|
|
|
|
echo "🐼 $PERCENTAGE% ist noch nicht genug für den $BELT_NAME Gürtel."
|
|
echo ""
|
|
echo " Benötigt: 80% (4 von 5 Fragen)"
|
|
echo " Erreicht: $PERCENTAGE% ($SCORE von $TOTAL Fragen)"
|
|
echo ""
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
echo ""
|
|
echo "💡 Tipps zum Üben:"
|
|
echo ""
|
|
echo " 1. Wiederhole die Mission:"
|
|
echo " bash missions/dojo/${BELT}_guertel.sh"
|
|
echo ""
|
|
echo " 2. Frag BashPanda um Hilfe:"
|
|
echo " bashpanda \"Erkläre mir [Thema]\""
|
|
echo ""
|
|
echo " 3. Probiere die Befehle im Terminal aus"
|
|
echo ""
|
|
echo " 4. Wiederhole die Prüfung wenn du bereit bist"
|
|
echo ""
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
echo ""
|
|
echo "🐼 \"Jeder Meister war einst ein Anfänger."
|
|
echo " Gib nicht auf. Übe weiter.\""
|
|
echo ""
|
|
fi
|
|
|
|
echo ""
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
echo ""
|