diff --git a/.woodpecker/agent-smoke.sh b/.woodpecker/agent-smoke.sh index 6fe8f49..14a4607 100644 --- a/.woodpecker/agent-smoke.sh +++ b/.woodpecker/agent-smoke.sh @@ -21,10 +21,11 @@ FAILED=0 # Uses awk instead of grep -Eo for busybox/Alpine compatibility (#296). get_fns() { local f="$1" - # BRE mode (no -E): () is literal in BRE, avoiding BusyBox ERE bugs - # where \(\) is misinterpreted. BRE one-or-more via [X][X]* instead of +. - grep '^[[:space:]]*[a-zA-Z_][a-zA-Z0-9_][a-zA-Z0-9_]*[[:space:]]*()' "$f" 2>/dev/null \ - | sed 's/^[[:space:]]*//; s/[[:space:]]*().*$//' \ + # BRE mode (no -E). Use [(][)] for literal parens — unambiguous across + # GNU grep and BusyBox grep (some BusyBox builds treat bare () as grouping + # even in BRE). BRE one-or-more via [X][X]* instead of +. + grep '^[[:space:]]*[a-zA-Z_][a-zA-Z0-9_][a-zA-Z0-9_]*[[:space:]]*[(][)]' "$f" 2>/dev/null \ + | sed 's/^[[:space:]]*//; s/[[:space:]]*[(][)].*$//' \ | sort -u || true }