diff --git a/scripts/build/golang-darwin.sh b/scripts/build/golang-darwin.sh index fddd4bc4f..d2e72eac9 100644 --- a/scripts/build/golang-darwin.sh +++ b/scripts/build/golang-darwin.sh @@ -17,9 +17,15 @@ rm -rf "${BACKEND_DIR}"/build-* # run.sh's final `exec $CURDIR/` is the contract for what gets launched; # the binary is not always named after the backend (e.g. parakeet-cpp launches # parakeet-cpp-grpc), so derive it from run.sh and fall back to ${BACKEND}. +# +# Only scan the `exec` line(s): many run.sh select a runtime CPU variant via +# unquoted `LIBRARY=$CURDIR/libgo-avx512.so` lines, and a whole-file grep +# would pick the last of those (avx512, which Darwin never builds) instead of +# the binary — failing the check below for whisper/sam3-cpp/vibevoice-cpp/... +# Also tolerate the exec being quoted (`exec "$CURDIR"/`). RUN_BINARY="" if [ -f "${BACKEND_DIR}/run.sh" ]; then - RUN_BINARY=$(grep -oE '\$CURDIR/[A-Za-z0-9._-]+' "${BACKEND_DIR}/run.sh" | grep -v 'ld\.so' | tail -1 | sed 's|\$CURDIR/||') + RUN_BINARY=$(grep -E '^[[:space:]]*exec[[:space:]]' "${BACKEND_DIR}/run.sh" | grep -oE '"?\$CURDIR"?/[A-Za-z0-9._-]+' | grep -v 'ld\.so' | tail -1 | sed -E 's|"?\$CURDIR"?/||') fi RUN_BINARY="${RUN_BINARY:-${BACKEND}}"