Refactor family vocabulary exercises generation for improved flexibility
- Replaced static family vocabulary exercises with a dynamic structure that generates exercises based on native language input, enhancing adaptability for different languages. - Introduced a mapping for family words and their translations, allowing for a more comprehensive and organized approach to exercise creation. - Updated logging to include native language context during exercise generation, improving clarity for developers and users. - Streamlined the gap fill and transformation exercises to ensure accurate and relevant content for learners.
This commit is contained in:
107
update-vocab-courses.sh
Executable file
107
update-vocab-courses.sh
Executable file
@@ -0,0 +1,107 @@
|
||||
#!/bin/bash
|
||||
# Script zum Aktualisieren der Sprachkurse
|
||||
# Führt Git-Fetch/Pull aus und aktualisiert die Kurs-Übungen
|
||||
# Findet automatisch die neuesten/relevanten Script-Dateien
|
||||
|
||||
# Kein "set -e", damit Scripts auch bei Fehlern weiterlaufen können
|
||||
|
||||
echo "🔄 Starte Update der Sprachkurse..."
|
||||
echo ""
|
||||
|
||||
# Prüfe ob wir im richtigen Verzeichnis sind
|
||||
if [ ! -f "package.json" ]; then
|
||||
echo "❌ Fehler: Bitte im Projekt-Root-Verzeichnis ausführen"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 1. Git Fetch und Pull
|
||||
echo "📥 Führe Git Fetch aus..."
|
||||
git fetch
|
||||
|
||||
echo "📥 Führe Git Pull aus..."
|
||||
git pull
|
||||
|
||||
echo ""
|
||||
echo "✅ Git Update abgeschlossen"
|
||||
echo ""
|
||||
|
||||
# 2. Wechsle ins Backend-Verzeichnis
|
||||
cd backend
|
||||
|
||||
# 3. Finde relevante Script-Dateien
|
||||
# Suche nach Scripts, die mit Sprachkursen zu tun haben
|
||||
echo "🔍 Suche nach relevanten Script-Dateien..."
|
||||
echo ""
|
||||
|
||||
SCRIPT_DIR="scripts"
|
||||
RELEVANT_KEYWORDS=("vocab" "course" "lesson" "exercise" "bisaya" "family" "survival" "grammar" "update" "create")
|
||||
|
||||
# Finde alle .js-Dateien im scripts-Verzeichnis, die relevante Keywords enthalten
|
||||
# Sortiere nach Änderungsdatum (neueste zuerst)
|
||||
TEMP_SCRIPT_LIST=$(mktemp)
|
||||
find "$SCRIPT_DIR" -name "*.js" -type f | while read -r file; do
|
||||
filename=$(basename "$file" .js)
|
||||
lowercase=$(echo "$filename" | tr '[:upper:]' '[:lower:]')
|
||||
for keyword in "${RELEVANT_KEYWORDS[@]}"; do
|
||||
if [[ "$lowercase" == *"$keyword"* ]]; then
|
||||
echo "$file"
|
||||
break
|
||||
fi
|
||||
done
|
||||
done | xargs ls -t 2>/dev/null > "$TEMP_SCRIPT_LIST" || true
|
||||
|
||||
SCRIPT_FILES=$(cat "$TEMP_SCRIPT_LIST" 2>/dev/null || true)
|
||||
rm -f "$TEMP_SCRIPT_LIST"
|
||||
|
||||
if [ -z "$SCRIPT_FILES" ]; then
|
||||
echo "⚠️ Keine relevanten Script-Dateien gefunden"
|
||||
echo ""
|
||||
else
|
||||
echo "📋 Gefundene Script-Dateien (nach Änderungsdatum sortiert):"
|
||||
while IFS= read -r script; do
|
||||
if [ -n "$script" ] && [ -f "$script" ]; then
|
||||
echo " - $script"
|
||||
fi
|
||||
done <<< "$SCRIPT_FILES"
|
||||
echo ""
|
||||
|
||||
# 4. Führe die Scripts aus
|
||||
echo "▶️ Starte Ausführung der Scripts..."
|
||||
echo ""
|
||||
|
||||
EXECUTED_COUNT=0
|
||||
FAILED_COUNT=0
|
||||
|
||||
while IFS= read -r script; do
|
||||
if [ -n "$script" ] && [ -f "$script" ]; then
|
||||
script_name=$(basename "$script")
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo "📝 Führe aus: $script_name"
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
|
||||
if sudo -u yourpart node "$script"; then
|
||||
echo "✅ $script_name erfolgreich abgeschlossen"
|
||||
EXECUTED_COUNT=$((EXECUTED_COUNT + 1))
|
||||
else
|
||||
EXIT_CODE=$?
|
||||
echo "❌ $script_name fehlgeschlagen (Exit Code: $EXIT_CODE)"
|
||||
FAILED_COUNT=$((FAILED_COUNT + 1))
|
||||
# Setze nicht -e, damit weitere Scripts ausgeführt werden können
|
||||
fi
|
||||
echo ""
|
||||
fi
|
||||
done <<< "$SCRIPT_FILES"
|
||||
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo "🎉 Update der Sprachkurse abgeschlossen!"
|
||||
echo ""
|
||||
echo "📊 Zusammenfassung:"
|
||||
echo " - Git-Repository aktualisiert"
|
||||
echo " - $EXECUTED_COUNT Script(s) erfolgreich ausgeführt"
|
||||
if [ $FAILED_COUNT -gt 0 ]; then
|
||||
echo " - ⚠️ $FAILED_COUNT Script(s) fehlgeschlagen"
|
||||
fi
|
||||
echo ""
|
||||
fi
|
||||
|
||||
echo "💡 Hinweis: Das Frontend muss separat aktualisiert werden mit: ./deploy-frontend.sh"
|
||||
Reference in New Issue
Block a user