diff --git a/modules/security/malware-scanner.sh b/modules/security/malware-scanner.sh index a0000a7..de18980 100755 --- a/modules/security/malware-scanner.sh +++ b/modules/security/malware-scanner.sh @@ -967,8 +967,7 @@ for scanner in "${AVAILABLE_SCANNERS[@]}"; do # Monitor activity by watching log file growth last_size=0 - spin_chars='⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏' - spin_index=0 + last_filename="" stall_counter=0 while kill -0 $CLAM_PID 2>/dev/null; do @@ -980,14 +979,14 @@ for scanner in "${AVAILABLE_SCANNERS[@]}"; do current_file=$(tail -1 "$LOG_DIR/clamav.log" 2>/dev/null | grep -o '/[^:]*' | head -1) if [ -n "$current_file" ]; then filename=$(basename "$current_file" 2>/dev/null || echo "...") - elapsed=$(($(date +%s) - SCAN_START)) - spin_char="${spin_chars:$spin_index:1}" - printf "\r Scanning... %s | Last file: %s | Elapsed: %s " \ - "$spin_char" "${filename:0:40}" "$(format_time $elapsed)" - else - elapsed=$(($(date +%s) - SCAN_START)) - spin_char="${spin_chars:$spin_index:1}" - printf "\r Scanning... %s | Elapsed: %s " "$spin_char" "$(format_time $elapsed)" + + # Only update display when filename changes + if [ "$filename" != "$last_filename" ]; then + elapsed=$(($(date +%s) - SCAN_START)) + printf "\r Scanning: %s | Elapsed: %s " \ + "${filename:0:50}" "$(format_time $elapsed)" + last_filename="$filename" + fi fi # Check for stalled scan (no log growth in 60 seconds) @@ -1002,7 +1001,6 @@ for scanner in "${AVAILABLE_SCANNERS[@]}"; do last_size=$current_size fi - spin_index=$(( (spin_index + 1) % 10 )) sleep 0.2 done