@@ -17,33 +17,26 @@ changed_files=$(git diff --name-only "$MERGE_BASE" HEAD)
1717changed_exercises=$( echo " $changed_files " | grep -E ' ^exercises/(practice|concept)/' || true)
1818changed_exercises=$( echo " $changed_exercises " | cut -d/ -f1-3 | sort -u)
1919
20- echo " $changed_exercises "
21-
20+ # Early exit if no exercise changed
2221if [ -z " $changed_exercises " ]; then
2322 echo " No exercises changed!"
2423 exit 0
2524fi
2625
27- # Deprecated practice exercises
28- deprecated_exercises=(
29- " exercises/practice/accumulate"
30- " exercises/practice/beer-song"
31- " exercises/practice/binary"
32- " exercises/practice/diffie-hellman"
33- " exercises/practice/hexadecimal"
34- " exercises/practice/minesweeper"
35- " exercises/practice/octal"
36- " exercises/practice/strain"
37- " exercises/practice/trinary"
38- " exercises/concept/play-your-cards"
39- )
26+ # Load deprecated exercises from config.json
27+ deprecated_exercises=$( jq -r '
28+ [
29+ (.exercises.concept[]? | select(.status=="deprecated") | "exercises/concept/" + .slug),
30+ (.exercises.practice[]? | select(.status=="deprecated") | "exercises/practice/" + .slug)
31+ ] | .[]
32+ ' config.json)
4033
4134# Check for deprecated ones
4235for ex in $changed_exercises ; do
43- if printf ' %s\n ' " ${ deprecated_exercises[@]} " | grep -qx " $ex " ; then
36+ if echo " $ deprecated_exercises" | grep -qx " $ex " ; then
4437 echo " ❌ Deprecated exercise changed: $ex "
4538 exit 1
4639 fi
4740done
4841
49- echo " ✅ No deprecated exercises changed!"
42+ echo " ✅ No deprecated exercises changed!"
0 commit comments