@@ -106,21 +106,25 @@ build_changed_lines_cache() {
106106 [ ! -s " $ALL_DIFF " ] && return
107107
108108 awk '
109+ BEGIN { file = ""; line_num = 0 }
109110 /^diff --git/ {
110111 file = $3
111112 sub(/^a\//, "", file)
112- print file >> "' " $CHANGED_FILES_CACHE " ' "
113+ if (file != "") print file >> "' " $CHANGED_FILES_CACHE " ' "
114+ line_num = 0
113115 }
114116 /^@@/ {
115- match($0, /\+([0-9]+)(,([0-9]+))?/)
116- range = substr($0, RSTART, RLENGTH)
117- sub(/^\+/, "", range)
118- split(range, parts, ",")
119- start = parts[1]
120- count = parts[2]
121- if (count == "") count = 1
122- for (i = start; i < start + count; i++)
123- print file ":" i >> "' " $CHANGED_LINES_CACHE " ' "
117+ if (match($0, /\+([0-9]+)/)) {
118+ line_num = substr($0, RSTART+1, RLENGTH-1)
119+ line_num = int(line_num)
120+ }
121+ next
122+ }
123+ /^\+/ && !/^\+\+\+/ {
124+ if (file != "" && line_num > 0) {
125+ print file ":" line_num >> "' " $CHANGED_LINES_CACHE " ' "
126+ line_num++
127+ }
124128 }
125129 ' " $ALL_DIFF "
126130}
@@ -130,11 +134,11 @@ is_changed() {
130134 line=" $2 "
131135
132136 if [ -z " $line " ]; then
133- [ -f " $CHANGED_FILES_CACHE " ] && grep -qF " $file " " $CHANGED_FILES_CACHE " && return 0
137+ [ -f " $CHANGED_FILES_CACHE " ] && grep -qxF " $file " " $CHANGED_FILES_CACHE " && return 0
134138 return 1
135139 fi
136140
137- [ -f " $CHANGED_LINES_CACHE " ] && grep -qF " ${file} :${line} " " $CHANGED_LINES_CACHE " && return 0
141+ [ -f " $CHANGED_LINES_CACHE " ] && grep -qxF " ${file} :${line} " " $CHANGED_LINES_CACHE " && return 0
138142 return 1
139143}
140144
@@ -195,11 +199,7 @@ check_blocking_rules() {
195199 [ -z " $file " ] && continue
196200
197201 if [ -z " $line " ]; then
198- if is_changed " $file " " " ; then
199- echo " 🚨 BLOQUEADO: Violação P1 a nível de arquivo encontrada no arquivo alterado: $file "
200- found_blocking=1
201- break
202- fi
202+ continue
203203 else
204204 if is_changed " $file " " $line " ; then
205205 echo " 🚨 BLOQUEADO: Violação P1 encontrada na linha alterada: $file :$line "
0 commit comments