- 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
64 lines
1.8 KiB
Bash
Executable File
64 lines
1.8 KiB
Bash
Executable File
#!/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)."
|