.agent/verificar-linhas.sh
2026-06-23 09:50:57 -03:00

41 lines
982 B
Bash

#!/usr/bin/env sh
# comando sh ../.agent/verificar-linhas.sh || exit 1
LIMITE=250
RAIZ=$(cd "$(dirname "$0")/.." && pwd)
RESULTADO=$(
find "$RAIZ" \
-type d \( \
-name node_modules -o \
-name .git -o \
-name dist -o \
-name build \
\) -prune \
-o \
-type f \( \
-name "*.ts" -o \
-name "*.tsx" -o \
-name "*.vue" -o \
-name "*.css" \
\) \
-print | while IFS= read -r arquivo; do
linhas=$(wc -l < "$arquivo" | tr -d ' ')
if [ "$linhas" -gt "$LIMITE" ]; then
relativo="${arquivo#$RAIZ/}"
printf "%5s linhas -> %s\n" "$linhas" "$relativo"
fi
done
)
if [ -n "$RESULTADO" ]; then
echo "$RESULTADO"
VIOLACOES=$(printf '%s\n' "$RESULTADO" | wc -l | tr -d ' ')
printf "\n❌ %s arquivo(s) violam o limite de %s linhas.\n" "$VIOLACOES" "$LIMITE"
printf "\n Resolva usando ag-refatorar\n\n"
exit 1
fi
printf "✅ Todos os arquivos dentro do limite de %s linhas.\n" "$LIMITE"