File tree Expand file tree Collapse file tree 1 file changed +79
-0
lines changed Expand file tree Collapse file tree 1 file changed +79
-0
lines changed Original file line number Diff line number Diff line change 1+ #! /bin/sh
2+
3+ TIMEOUT=15
4+ QUIET=0
5+
6+ echoerr () {
7+ if [ " $QUIET " -ne 1 ]; then printf " %s\n" " $* " 1>&2 ; fi
8+ }
9+
10+ usage () {
11+ exitcode=" $1 "
12+ cat << USAGE >&2
13+ Usage:
14+ $cmdname host:port [-t timeout] [-- command args]
15+ -q | --quiet Do not output any status messages
16+ -t TIMEOUT | --timeout=timeout Timeout in seconds, zero for no timeout
17+ -- COMMAND ARGS Execute command with args after the test finishes
18+ USAGE
19+ exit " $exitcode "
20+ }
21+
22+ wait_for () {
23+ for i in ` seq $TIMEOUT ` ; do
24+ nc -z " $HOST " " $PORT " > /dev/null 2>&1
25+
26+ result=$?
27+ if [ $result -eq 0 ] ; then
28+ if [ $# -gt 0 ] ; then
29+ exec " $@ "
30+ fi
31+ exit 0
32+ fi
33+ sleep 1
34+ done
35+ echo " Operation timed out" >&2
36+ exit 1
37+ }
38+
39+ while [ $# -gt 0 ]
40+ do
41+ case " $1 " in
42+ * :* )
43+ HOST=$( printf " %s\n" " $1 " | cut -d : -f 1)
44+ PORT=$( printf " %s\n" " $1 " | cut -d : -f 2)
45+ shift 1
46+ ;;
47+ -q | --quiet)
48+ QUIET=1
49+ shift 1
50+ ;;
51+ -t)
52+ TIMEOUT=" $2 "
53+ if [ " $TIMEOUT " = " " ]; then break ; fi
54+ shift 2
55+ ;;
56+ --timeout=* )
57+ TIMEOUT=" ${1#* =} "
58+ shift 1
59+ ;;
60+ --)
61+ shift
62+ break
63+ ;;
64+ --help)
65+ usage 0
66+ ;;
67+ * )
68+ echoerr " Unknown argument: $1 "
69+ usage 1
70+ ;;
71+ esac
72+ done
73+
74+ if [ " $HOST " = " " -o " $PORT " = " " ]; then
75+ echoerr " Error: you need to provide a host and port to test."
76+ usage 2
77+ fi
78+
79+ wait_for " $@ "
You can’t perform that action at this time.
0 commit comments