From 268ddc398c167bbb3b2f785075a12531f114049a Mon Sep 17 00:00:00 2001 From: openhands Date: Thu, 19 Mar 2026 19:43:42 +0000 Subject: [PATCH] fix: use awk instead of grep -Eo in smoke test for Alpine compatibility (#296) busybox grep on Alpine handles ERE character classes [(][)] differently from GNU grep, causing get_fns to miss function definitions like handle_ci_exhaustion(). awk is portable and works identically on all platforms. Co-Authored-By: Claude Opus 4.6 (1M context) --- .woodpecker/agent-smoke.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.woodpecker/agent-smoke.sh b/.woodpecker/agent-smoke.sh index 712fae0..e304c30 100644 --- a/.woodpecker/agent-smoke.sh +++ b/.woodpecker/agent-smoke.sh @@ -18,10 +18,14 @@ FAILED=0 # ── helpers ───────────────────────────────────────────────────────────────── # Extract function names defined in a bash script (top-level or indented). +# Uses awk instead of grep -Eo for busybox/Alpine compatibility (#296). get_fns() { local f="$1" - grep -Eo '[a-zA-Z_][a-zA-Z0-9_]+[[:space:]]*[(][)]' "$f" 2>/dev/null \ - | sed 's/[[:space:]]*()//' | sort -u || true + awk '/^[[:space:]]*[a-zA-Z_][a-zA-Z0-9_]+[[:space:]]*\(\)/ { + sub(/^[[:space:]]+/, "") + sub(/[[:space:]]*\(\).*/, "") + print + }' "$f" 2>/dev/null | sort -u || true } # Extract call-position identifiers that look like custom function calls: