- Replace all emoji characters with ASCII equivalents throughout codebase - Replace Unicode box-drawing characters (═║╔╗╚╝━─) with ASCII (+|-=) - Replace checkmarks (✓✗) with [OK]/[FAIL] markers - 59 files updated, 741 lines changed - Improves terminal compatibility and reduces visual noise
131 lines
5.1 KiB
Bash
Executable File
131 lines
5.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# Remove ALL emojis/unicode symbols from Go code and replace with ASCII
|
|
# Date: January 8, 2026
|
|
# Issue: 638 lines contain Unicode emojis causing display issues
|
|
|
|
set -euo pipefail
|
|
|
|
echo "[INFO] Starting emoji removal process..."
|
|
echo ""
|
|
|
|
# Find all Go files with emojis (expanded emoji list)
|
|
echo "[SEARCH] Finding affected files..."
|
|
FILES=$(find . -name "*.go" -type f -not -path "*/vendor/*" -not -path "*/.git/*" | xargs grep -l -P '[\x{1F000}-\x{1FFFF}]|[\x{2300}-\x{27BF}]|[\x{2600}-\x{26FF}]' 2>/dev/null || true)
|
|
|
|
if [ -z "$FILES" ]; then
|
|
echo "[WARN] No files with emojis found!"
|
|
exit 0
|
|
fi
|
|
|
|
FILECOUNT=$(echo "$FILES" | wc -l)
|
|
echo "[INFO] Found $FILECOUNT files containing emojis"
|
|
echo ""
|
|
|
|
# Count total emojis before
|
|
BEFORE=$(find . -name "*.go" -type f -not -path "*/vendor/*" | xargs grep -oP '[\x{1F000}-\x{1FFFF}]|[\x{2300}-\x{27BF}]|[\x{2600}-\x{26FF}]' 2>/dev/null | wc -l || echo "0")
|
|
echo "[INFO] Total emojis found: $BEFORE"
|
|
echo ""
|
|
|
|
# Create backup
|
|
BACKUP_DIR="backup_before_emoji_removal_$(date +%Y%m%d_%H%M%S)"
|
|
mkdir -p "$BACKUP_DIR"
|
|
echo "[INFO] Creating backup in $BACKUP_DIR..."
|
|
for file in $FILES; do
|
|
mkdir -p "$BACKUP_DIR/$(dirname "$file")"
|
|
cp "$file" "$BACKUP_DIR/$file"
|
|
done
|
|
echo "[OK] Backup created"
|
|
echo ""
|
|
|
|
# Process each file
|
|
echo "[INFO] Replacing emojis with ASCII equivalents..."
|
|
PROCESSED=0
|
|
|
|
for file in $FILES; do
|
|
PROCESSED=$((PROCESSED + 1))
|
|
echo "[$PROCESSED/$FILECOUNT] Processing: $file"
|
|
|
|
# Create temp file
|
|
TMPFILE="${file}.tmp"
|
|
|
|
# Status indicators
|
|
sed 's/✅/[OK]/g' "$file" > "$TMPFILE" && mv "$TMPFILE" "$file"
|
|
sed 's/❌/[FAIL]/g' "$file" > "$TMPFILE" && mv "$TMPFILE" "$file"
|
|
sed 's/✓/[+]/g' "$file" > "$TMPFILE" && mv "$TMPFILE" "$file"
|
|
sed 's/✗/[-]/g' "$file" > "$TMPFILE" && mv "$TMPFILE" "$file"
|
|
|
|
# Warning symbols (⚠️ has variant selector, handle both)
|
|
sed 's/⚠️/[WARN]/g' "$file" > "$TMPFILE" && mv "$TMPFILE" "$file"
|
|
sed 's/⚠/[!]/g' "$file" > "$TMPFILE" && mv "$TMPFILE" "$file"
|
|
|
|
# Info/Data symbols
|
|
sed 's/📊/[INFO]/g' "$file" > "$TMPFILE" && mv "$TMPFILE" "$file"
|
|
sed 's/📋/[LIST]/g' "$file" > "$TMPFILE" && mv "$TMPFILE" "$file"
|
|
sed 's/📁/[DIR]/g' "$file" > "$TMPFILE" && mv "$TMPFILE" "$file"
|
|
sed 's/📦/[PKG]/g' "$file" > "$TMPFILE" && mv "$TMPFILE" "$file"
|
|
|
|
# Target/Security
|
|
sed 's/🎯/[TARGET]/g' "$file" > "$TMPFILE" && mv "$TMPFILE" "$file"
|
|
sed 's/🛡️/[SECURE]/g' "$file" > "$TMPFILE" && mv "$TMPFILE" "$file"
|
|
sed 's/🔒/[LOCK]/g' "$file" > "$TMPFILE" && mv "$TMPFILE" "$file"
|
|
sed 's/🔓/[UNLOCK]/g' "$file" > "$TMPFILE" && mv "$TMPFILE" "$file"
|
|
|
|
# Actions
|
|
sed 's/🔍/[SEARCH]/g' "$file" > "$TMPFILE" && mv "$TMPFILE" "$file"
|
|
sed 's/⏱️/[TIME]/g' "$file" > "$TMPFILE" && mv "$TMPFILE" "$file"
|
|
|
|
# Cloud operations (☁️ has variant selector, handle both)
|
|
sed 's/☁️/[CLOUD]/g' "$file" > "$TMPFILE" && mv "$TMPFILE" "$file"
|
|
sed 's/☁/[CLOUD]/g' "$file" > "$TMPFILE" && mv "$TMPFILE" "$file"
|
|
sed 's/📤/[UPLOAD]/g' "$file" > "$TMPFILE" && mv "$TMPFILE" "$file"
|
|
sed 's/📥/[DOWNLOAD]/g' "$file" > "$TMPFILE" && mv "$TMPFILE" "$file"
|
|
sed 's/🗑️/[DELETE]/g' "$file" > "$TMPFILE" && mv "$TMPFILE" "$file"
|
|
|
|
# Other
|
|
sed 's/📈/[UP]/g' "$file" > "$TMPFILE" && mv "$TMPFILE" "$file"
|
|
sed 's/📉/[DOWN]/g' "$file" > "$TMPFILE" && mv "$TMPFILE" "$file"
|
|
|
|
# Additional emojis found
|
|
sed 's/⌨️/[KEY]/g' "$file" > "$TMPFILE" && mv "$TMPFILE" "$file"
|
|
sed 's/⌨/[KEY]/g' "$file" > "$TMPFILE" && mv "$TMPFILE" "$file"
|
|
sed 's/🗄️/[DB]/g' "$file" > "$TMPFILE" && mv "$TMPFILE" "$file"
|
|
sed 's/🗄/[DB]/g' "$file" > "$TMPFILE" && mv "$TMPFILE" "$file"
|
|
sed 's/⚙️/[CONFIG]/g' "$file" > "$TMPFILE" && mv "$TMPFILE" "$file"
|
|
sed 's/⚙/[CONFIG]/g' "$file" > "$TMPFILE" && mv "$TMPFILE" "$file"
|
|
sed 's/✏️/[EDIT]/g' "$file" > "$TMPFILE" && mv "$TMPFILE" "$file"
|
|
sed 's/✏/[EDIT]/g' "$file" > "$TMPFILE" && mv "$TMPFILE" "$file"
|
|
done
|
|
|
|
echo ""
|
|
echo "[OK] Replacement complete!"
|
|
echo ""
|
|
|
|
# Count remaining emojis
|
|
AFTER=$(find . -name "*.go" -type f -not -path "*/vendor/*" | xargs grep -oP '[\x{1F000}-\x{1FFFF}]|[\x{2300}-\x{27BF}]|[\x{2600}-\x{26FF}]' 2>/dev/null | wc -l || echo "0")
|
|
|
|
echo "[INFO] Emojis before: $BEFORE"
|
|
echo "[INFO] Emojis after: $AFTER"
|
|
echo "[INFO] Emojis removed: $((BEFORE - AFTER))"
|
|
echo ""
|
|
|
|
if [ "$AFTER" -gt 0 ]; then
|
|
echo "[WARN] $AFTER emojis still remaining!"
|
|
echo "[INFO] Listing remaining emojis:"
|
|
find . -name "*.go" -type f -not -path "*/vendor/*" | xargs grep -nP '[\x{1F000}-\x{1FFFF}]|[\x{2300}-\x{27BF}]|[\x{2600}-\x{26FF}]' 2>/dev/null | head -20
|
|
else
|
|
echo "[OK] All emojis successfully removed!"
|
|
fi
|
|
|
|
echo ""
|
|
echo "[INFO] Backup location: $BACKUP_DIR"
|
|
echo "[INFO] To restore: cp -r $BACKUP_DIR/* ."
|
|
echo ""
|
|
echo "[INFO] Next steps:"
|
|
echo " 1. Build: go build"
|
|
echo " 2. Test: go test ./..."
|
|
echo " 3. Manual testing: ./dbbackup status"
|
|
echo " 4. If OK, commit: git add . && git commit -m 'Replace emojis with ASCII'"
|
|
echo " 5. If broken, restore: cp -r $BACKUP_DIR/* ."
|
|
echo ""
|
|
echo "[OK] Emoji removal script completed!"
|