diff --git a/merge-check.sh b/merge-check.sh index d175136..0e59e8d 100755 --- a/merge-check.sh +++ b/merge-check.sh @@ -25,7 +25,14 @@ fi race="" if command -v gcc >/dev/null 2>&1; then race="-race"; else echo "NOT RACE-CHECKED: the toolchain holds no C compiler"; fi -touched=$(printf '%s\n' "${MESH_CHECK_CHANGED:-}" | tr ',' '\n' | sed -n 's#^modules/\([^/]*\)/.*#\1#p' | sort -u) +# The modules the change reaches are the controller's planner's answer (MESH_CHECK_MODULES, hq ADR 0238): +# a module by its name, a new one by its directory. By hand, without it, the directories the changed files +# are in. +if [ -n "${MESH_CHECK_MODULES:-}" ]; then + touched=$(printf '%s\n' "$MESH_CHECK_MODULES" | tr ',' '\n' | sed -e 's#^modules/##' -e '/\//d' | sort -u) +else + touched=$(printf '%s\n' "${MESH_CHECK_CHANGED:-}" | tr ',' '\n' | sed -n 's#^modules/\([^/]*\)/.*#\1#p' | sort -u) +fi for m in $touched; do [ -d "modules/$m" ] || continue if [ ! -f "modules/$m/go.mod" ]; then