Skip to content

Commit

Permalink
feat: add fallback to /dev/tcp on bash if netcat not found (#51)
Browse files Browse the repository at this point in the history
  • Loading branch information
xoxys authored Mar 2, 2023
1 parent 3774a85 commit 3cd05d4
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 5 deletions.
11 changes: 9 additions & 2 deletions .drone.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,18 @@ steps:
commands:
- shellcheck ./wait-for

- name: test
- name: test-nc
image: bats/bats
commands:
- bats ./wait-for.bats

- name: test-bash
image: bats/bats
commands:
- rm -rf /usr/bin/nc
- apk add bash
- bats ./wait-for.bats

trigger:
ref:
- refs/heads/main
Expand Down Expand Up @@ -220,6 +227,6 @@ depends_on:

---
kind: signature
hmac: 52a6f7275d25c344cfe1d072d1a2b2a8eb95ffa82962921ae872443565a52b33
hmac: bd88ea52d53fb53375b5a4e4e905f2b7e76760ec88fe81d4a0df93319ad635e4

...
22 changes: 19 additions & 3 deletions wait-for
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
WAITFOR_TIMEOUT=${WAITFOR_TIMEOUT:-15}
WAITFOR_QUIET=${WAITFOR_QUIET:-0}

HAS_NC=0
HAS_BASH=0

echoerr() {
if [ "$WAITFOR_QUIET" -ne 1 ]; then printf "%s\n" "$*" 1>&2; fi
}
Expand All @@ -24,7 +27,12 @@ USAGE

wait_for() {
for _ in $(seq "$WAITFOR_TIMEOUT"); do
nc -w 1 -z "$WAITFOR_HOST" "$WAITFOR_PORT" >/dev/null 2>&1
if [ $HAS_NC = 1 ]; then
nc -w 1 -z "$WAITFOR_HOST" "$WAITFOR_PORT" >/dev/null 2>&1
elif [ $HAS_BASH = 1 ]; then
# shellcheck disable=SC3025
bash -c "</dev/tcp/$WAITFOR_HOST/$WAITFOR_PORT" >/dev/null 2>&1
fi

result=$?
if [ $result -eq 0 ]; then
Expand Down Expand Up @@ -73,8 +81,16 @@ while [ $# -gt 0 ]; do
esac
done

if ! [ -x "$(command -v nc)" ]; then
echoerr "error: netcat is required for wait-for to run"
if [ -x "$(command -v nc)" ]; then
HAS_NC=1
fi

if [ -x "$(command -v bash)" ]; then
HAS_BASH=1
fi

if [ $HAS_NC = 0 ] || [ $HAS_BASH = 0 ]; then
echoerr "error: netcat or bash is required for wait-for to run"
exit 1
fi

Expand Down

0 comments on commit 3cd05d4

Please sign in to comment.