Add complete Crumbforest mission system
- Interactive mission selector with metadata-driven design - 5 educational missions (basics + advanced) - AI assistant roles (Deepbit, Bugsy, Schnippsi, Tobi) - SnakeCam gesture recognition system - Token tracking utilities - CLAUDE.md documentation - .gitignore for logs and secrets
This commit is contained in:
63
fix_token_logs.sh
Executable file
63
fix_token_logs.sh
Executable file
@@ -0,0 +1,63 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "🔧 Repariere Crumbforest Token-Logs mit eingebetteten JSON-Strings …"
|
||||
|
||||
LOG_DIRS=(
|
||||
"/home/zero/.bugsy_logs"
|
||||
"/home/zero/.deepbit_logs"
|
||||
"/home/zero/.dumbo_logs"
|
||||
"/home/zero/.funkfox_logs"
|
||||
"/home/zero/.pepper_logs"
|
||||
"/home/zero/.schnecki_logs"
|
||||
"/home/zero/.schnippsi_logs"
|
||||
"/home/zero/.schraubaer_logs"
|
||||
"/home/zero/.snake_logs"
|
||||
"/home/zero/.taube_logs"
|
||||
"/home/zero/.templatus_logs"
|
||||
"/home/zero/.tobi_logs"
|
||||
)
|
||||
|
||||
for dir in "${LOG_DIRS[@]}"; do
|
||||
FILE="$dir/token_log.json"
|
||||
if [ -f "$FILE" ]; then
|
||||
echo "🔍 Prüfe $FILE …"
|
||||
TMP="$FILE.fixed"
|
||||
|
||||
# Filter & reparieren Zeile für Zeile
|
||||
jq -c '.' "$FILE" 2>/dev/null | while read -r line; do
|
||||
usage_raw=$(echo "$line" | jq -r '.usage')
|
||||
if [[ "$usage_raw" =~ ^\{.*\}$ ]]; then
|
||||
# usage ist korrektes Objekt – direkt übernehmen
|
||||
echo "$line" >> "$TMP"
|
||||
else
|
||||
# usage ist String – versuche zu reparieren
|
||||
usage_fixed=$(echo "$usage_raw" | jq '.' 2>/dev/null)
|
||||
if [ $? -eq 0 ]; then
|
||||
zeit=$(echo "$line" | jq -r '.zeit')
|
||||
rolle=$(echo "$line" | jq -r '.rolle')
|
||||
jq -n \
|
||||
--arg zeit "$zeit" \
|
||||
--arg rolle "$rolle" \
|
||||
--argjson usage "$usage_fixed" \
|
||||
'{zeit: $zeit, rolle: $rolle, usage: $usage}' >> "$TMP"
|
||||
else
|
||||
echo "⚠️ Ungültige Zeile übersprungen in $FILE:"
|
||||
echo "$line"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# Nur ersetzen, wenn wir etwas geschrieben haben
|
||||
if [ -s "$TMP" ]; then
|
||||
mv "$TMP" "$FILE"
|
||||
echo "✅ Repariert: $FILE"
|
||||
else
|
||||
echo "ℹ️ Keine gültigen Einträge in $FILE"
|
||||
rm -f "$TMP"
|
||||
fi
|
||||
else
|
||||
echo "❌ Datei nicht gefunden: $FILE"
|
||||
fi
|
||||
done
|
||||
|
||||
echo "🎉 Alle Token-Logs geprüft und repariert (sofern nötig)."
|
||||
Reference in New Issue
Block a user