@@ -22,18 +22,36 @@ compare_files() {
2222 for file in " $expected_dir " /* ; do
2323 if [ -f " $file " ]; then
2424 filename=$( basename " $file " )
25- if diff " $file " " $actual_dir /$filename " > /dev/null 2>&1 ; then
26- echo " ✅ $label /$filename matches expected"
25+ if [ " $filename " = " codacy.yaml" ]; then
26+ # For codacy.yaml, sort the tools section before comparing
27+ if diff <( yq e ' .tools | sort_by(.name)' " $file " ) <( yq e ' .tools | sort_by(.name)' " $actual_dir /$filename " ) > /dev/null 2>&1 ; then
28+ echo " ✅ $label /$filename matches expected"
29+ else
30+ echo " ❌ $label /$filename does not match expected"
31+ echo " === Expected file content (sorted) ==="
32+ yq e ' .tools | sort_by(.name)' " $file "
33+ echo " === Actual file content (sorted) ==="
34+ yq e ' .tools | sort_by(.name)' " $actual_dir /$filename "
35+ echo " === Diff output ==="
36+ diff <( yq e ' .tools | sort_by(.name)' " $file " ) <( yq e ' .tools | sort_by(.name)' " $actual_dir /$filename " ) || true
37+ echo " ==================="
38+ exit 1
39+ fi
2740 else
28- echo " ❌ $label /$filename does not match expected"
29- echo " === Expected file content ==="
30- cat " $file "
31- echo " === Actual file content ==="
32- cat " $actual_dir /$filename "
33- echo " === Diff output ==="
34- diff " $file " " $actual_dir /$filename " || true
35- echo " ==================="
36- exit 1
41+ # For other files, compare normally
42+ if diff " $file " " $actual_dir /$filename " > /dev/null 2>&1 ; then
43+ echo " ✅ $label /$filename matches expected"
44+ else
45+ echo " ❌ $label /$filename does not match expected"
46+ echo " === Expected file content ==="
47+ cat " $file "
48+ echo " === Actual file content ==="
49+ cat " $actual_dir /$filename "
50+ echo " === Diff output ==="
51+ diff " $file " " $actual_dir /$filename " || true
52+ echo " ==================="
53+ exit 1
54+ fi
3755 fi
3856 fi
3957 done
0 commit comments