aboutsummaryrefslogtreecommitdiff
path: root/qa/rpc-tests/send.sh
blob: 8c0f114590cf9df5eb2541771c7b93b955252e09 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/bash
# Copyright (c) 2014 The Bitcoin Core developers
# Distributed under the MIT/X11 software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
TIMEOUT=10
SIGNAL=HUP
PIDFILE=.send.pid
if [ $# -eq 0 ]; then
  echo -e "Usage:\t$0 <cmd>"
  echo -e "\tRuns <cmd> and wait ${TIMEOUT} seconds or until SIG${SIGNAL} is received."
  echo -e "\tReturns: 0 if SIG${SIGNAL} is received, 1 otherwise."
  echo -e "Or:\t$0 -STOP"
  echo -e "\tsends SIG${SIGNAL} to running send.sh"
  exit 0
fi

if [ $1 = "-STOP" ]; then
  if [ -s ${PIDFILE} ]; then
      kill -s ${SIGNAL} $(<${PIDFILE})
  fi
  exit 0
fi

trap '[[ ${PID} ]] && kill ${PID}' ${SIGNAL}
trap 'rm -f ${PIDFILE}' EXIT
echo $$ > ${PIDFILE}
"$@"
sleep ${TIMEOUT} & PID=$!
wait ${PID} && exit 1

exit 0