#!/bin/bash
# 进度打印(修复版): progress.sh <日志> <总数> <标签> [运行PID]
L="$1"; TOT="$2"; TAG="$3"; PID="${4:-}"
[ ! -f "$L" ] && echo "[$TAG] 日志未生成" && exit 0
DONE=$(grep -ac 'FUZZ_RESULT' "$L" 2>/dev/null | head -1); DONE=${DONE:-0}
S=$(grep -ac 'FUZZ_RESULT.*success' "$L" 2>/dev/null | head -1); S=${S:-0}
F=$(grep -ac 'FUZZ_RESULT.*faild' "$L" 2>/dev/null | head -1); F=${F:-0}
R=0; [ "$DONE" -gt 0 ] 2>/dev/null && R=$(( DONE * 100 / TOT ))
RUN="✅完成"; [ -n "$PID" ] && kill -0 "$PID" 2>/dev/null && RUN="🔄运行中"
ETA=""
if [ "$DONE" -gt 50 ] 2>/dev/null && [ "$RUN" = "🔄运行中" ]; then
  NOW=$(date +%s); BIRTH=$(stat -c %Y "$L" 2>/dev/null || echo $NOW)
  AGE=$(( NOW - BIRTH )); RATE=$(( AGE / DONE ))
  LEFT=$(( (TOT - DONE) * RATE ))
  ETA=" 预计剩余$(( LEFT / 60 ))m$(( LEFT % 60 ))s"
fi
printf "%s [%s] %s %d/%d (%d%%) | ✅%d ❌%d%s\n" "$(date +%H:%M:%S)" "$TAG" "$RUN" "$DONE" "$TOT" "$R" "$S" "$F" "$ETA"